RU2818299C1 - Способ и устройство квантования сферических координат, используемых для кодирования/декодирования данных геометрии облака точек - Google Patents

Способ и устройство квантования сферических координат, используемых для кодирования/декодирования данных геометрии облака точек Download PDF

Info

Publication number
RU2818299C1
RU2818299C1 RU2023118276A RU2023118276A RU2818299C1 RU 2818299 C1 RU2818299 C1 RU 2818299C1 RU 2023118276 A RU2023118276 A RU 2023118276A RU 2023118276 A RU2023118276 A RU 2023118276A RU 2818299 C1 RU2818299 C1 RU 2818299C1
Authority
RU
Russia
Prior art keywords
azimuthal angle
point
radius
point cloud
quantization
Prior art date
Application number
RU2023118276A
Other languages
English (en)
Inventor
Джонатан ТАКЕТ
Себастьян ЛАССЕРР
Original Assignee
Бейдзин Сяоми Мобайл Софтвэр Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Бейдзин Сяоми Мобайл Софтвэр Ко., Лтд. filed Critical Бейдзин Сяоми Мобайл Софтвэр Ко., Лтд.
Application granted granted Critical
Publication of RU2818299C1 publication Critical patent/RU2818299C1/ru

Links

Abstract

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

Description

Перекрестные ссылки на связанные заявки
Настоящая заявка ссылается на приоритет европейской заявки ЕР 20306674.1, зарегистрированной 23 декабря 2020 года. При этом содержимое упомянутой заявки полностью включено в настоящий документ путем ссылки.
Область техники
Настоящая заявка относится, в общем, к сжатию облака точек, а именно, к способам и устройствам квантования сферических координат для кодирования/декодирования данных геометрии облака точек, захваченных вращающейся измерительной головкой.
Предпосылки создания изобретения
Данный раздел представляет читателю различные аспекты текущего уровня развития техники, которые могут иметь отношение к различным аспектам по меньшей мере одного из примеров осуществления настоящего изобретения, описанных ниже и/или в приложенной формуле изобретения. Данное описание призвано сообщить читателю вводную информацию, облегчающую понимание различных аспектов настоящего изобретения.
В последнее время, в качестве одного из форматов представления трехмерных данных, облака точек приобретают все большую популярность благодаря их универсальности и способности представлять любые типы физических объектов и сцен. Облака точек могут применяться для различных задач, например, для объектов культурного наследия или зданий: статуи или здания сканируют и получают их трехмерное представление, позволяющее удаленно воспринимать пространственную конфигурацию объектов без их пересылки или посещения. Также это может быть одним из способов сохранения знаний об объектах в случае их физического уничтожения, например, в случае храма, который может быть уничтожен землетрясением. Подобные облака точек являются, как правило, статическими, имеют цветовую информацию и огромны по объему.
Еще одним сценарием применения облаков точек может быть топография и картография, когда трехмерное представление позволяет карте не быть ограниченной плоскостью и включать также рельеф. Хорошим примеров трехмерной карты является сервис Google Maps, однако в нем применяются сетки, а не облака точек. Тем не менее, облака точек подходят для применения в трехмерных картах, и такие облака точек являются, как правило, статическими, включают цветовую информацию и огромны по объему.
Виртуальная реальность (Virtual Reality, VR), дополненная реальность (Augmented Reality, AR) и технологии иммерсивного опыта в последнее время стали широко обсуждаемыми темами. Ожидается, что такие технологии придут на смену двумерному плоскому видео. Основная их идея заключается в погружении зрителя в окружающую среду, в отличие от обычного телевизора, дающего пользователям возможность лишь заглянуть в виртуальный мир, расположенный перед ними. Существуют различные степени иммерсивности, в зависимости от степеней свободы зрителя в окружении. Формат облаков точек являются многообещающим кандидатом для распространения VR/AR миров.
Еще одной сферой интенсивного применения облаков точек может быть автомобильная промышленность, а именно, беспилотные автомобили. Беспилотные автомобили должны уметь «зондировать» их окружение, чтобы принимать корректные решения при вождении на основе обнаруженного присутствия объектов, а также характера этих объектов и конфигурации дороги.
Облако точек представляет собой множество точек, расположенных в трехмерном (3D) пространстве. Опционально, к каждой из точек могут быть привязаны дополнительные значения. Такие дополнительные значения, как правило, называют атрибутами. Атрибутами могут быть, например, трехкомпонентный цвет, свойства материала, такие как отражающая способность, и/или двухкомпонентные векторы нормали, относящиеся к точке.
Облако точек, таким образом, представляет собой сочетание геометрии (местоположений точек в трехмерном пространстве, задаваемых, как правило, декартовыми координатами х, у и z) и атрибутов.
Облака точек могут формироваться при помощи устройств различных типов, например, массивов камер, датчиков глубины, лазеров (регистрирующих свет и измеряющих расстояния, также называемых лидарами), радаров, или могут формироваться при помощи компьютера (например, в послесъемочной обработке фильмов). В зависимости от сценария применения, облака точек могут иметь от тысяч до миллиардов точек, в случае применения в картографии. В сыром, «необработанном», виде облака точек требуют очень большого количества битов на каждую точку, по меньшей мере 12 битов на каждую декартову координату х, у и z, и опционально, дополнительные биты для атрибутов, к примеру, три раза по 10 битов для цвета.
Во многих применениях важно либо иметь возможность доставлять облака точек конечному пользователю, либо хранить их на сервере, с использованием лишь ограниченного разумного битрейта или объема памяти, но с сохранением приемлемого (или, предпочтительно, очень высокого) качества восприятия. Чтобы транспортные сети для распределения множества иммерсивных миров могли быть реализованы на практике, критически важно иметь возможность эффективного сжатия облаков точек.
В случае доставки и визуализации у конечного пользователя, например, в AR/VR-очках или любых других устройств с 3D-функциями, такое сжатие может выполняться с потерями (аналогично видеосжатию). В других сценариях применения может требоваться сжатие без потерь, например, в медицине или беспилотных автомобилях, чтобы исключить влияние на решения, принимаемые при последующем анализе сжатых и переданных облаков точек.
До недавнего времени сжатие облаков точек (point cloud compression, РСС) не было востребовано на массовом потребительском рынке, и соответственно, не было стандартизированного кодека облаков точек. В 2017 году рабочая группа ISO/JCT1/SC29/WG11, также известная как «Группа экспертов по движущемуся изображению» (Moving Picture Experts Group, MPEG), инициировала работы по стандартизации сжатия облаков точек. В результате было предложено два стандарта, а именно:
MPEG-I часть 5 (ISO/IEC 23090-5), или сжатие облаков точек на основе видео (Video-based Point Cloud Compression, V-PCC);
MPEG-I часть 9 (ISO/IEC 23090-9), или сжатие облаков точек на основе геометрии (Geometry-based Point Cloud Compression, G-PCC).
Метод V-PCC кодирования сжимает облако точек путем выполнения множества проекций трехмерного объекта с получением двумерных участков (патчей), которые упаковывают в изображение (или видео, при работе с динамическими облаками точек). Полученные изображения или видео затем сжимают с помощью существующих кодеков изображений/видео, что позволяет применять уже развернутые решения для работы с изображениями и видео. По своей природе метод V-PCC эффективен только для плотных и непрерывных облаков точек, поскольку кодеки изображений/видео не способны сжимать негладкие участки, которые могут возникать, например, в результате проецирования зарегистрированных лидаром данных с рассеянной геометрией.
Метод G-PCC кодирования имеет две схемы сжатия захваченных данных с рассеянной геометрией.
Первая схема основана на дереве занятости, которое может быть, локально, любым из следующих типов, представляющих геометрию облака точек: октадеревом, квадродеревом или бинарным деревом. Занятые узлы разбивают на подветви до тех пор, пока не будет достигнут заданный размер, и занятые листы дерева содержат местоположения точек в трехмерном пространстве, как правило, в центре этих узлов. Информацию о занятости передают при помощи флагов занятости, сигнализирующих о состоянии занятости каждого из дочерних узлов любого узла. С помощью методов предсказания на основе соседей в случае плотных облаков точек может быть достигнут высокий уровень сжатия флагов занятости. Рассеянные облака точек также могут быть обработаны при помощи непосредственного кодирования положения точки в узле с неминимальным размером и остановки построения дерева, когда в узле находятся только изолированные точки; такой метод называют режимом прямого кодирования (Direct Coding Mode, DCM).
Вторая схема основана на дереве предсказания, в котором каждый узел представляет собой местоположение точки в трехмерном пространстве, а отношения родитель/потомок между узлами представляет собой пространственное предсказание от родителя к потомку. Такой метод подходит только для рассеянных облаков точек и выгодно отличается низкими задержками и более простым декодированием по сравнению с деревом занятости. Однако достижимая эффективность сжатия лишь незначительно выше при сложном, по сравнению с методом на основе занятости, кодировании, поскольку при построении дерева предсказаний кодеру необходимо выполнять тщательный поиск наилучшего предсказания (по длинному списку потенциальных предсказаний).
В обеих схемах (де)кодирование атрибутов выполняют после полного (де)кодирования геометрии, что практически означает кодирование в два прохода. Таким образом, низкая латентность для комбинации геометрии и атрибутов может быть достигнута путем применения слайсов, разбивающих трехмерное пространство на независимо кодируемые частичные объемы, без предсказания между частичными объемами. Это может оказывать сильное негативное влияние на эффективность сжатия, если количество используемых слайсов велико.
В существующих кодеках облаков точек до сих пор не удавалось решить задачу совмещения требований к простоте кодера и декодера, низких задержек и эффективности сжатия.
Одним из важных сценариев применения является передача рассеянных геометрических данных, захваченных вращающимся лидаром, установленным на движущемся автомобиле. Как правило, это требует наличия на борту автомобиля простого кодера с низкими задержками. Простота необходима, поскольку кодер, вероятно, будет развернут на вычислительных блоках, которые параллельно выполняют обработку и других данных, например, при (частично-)беспилотном вождении, что ограничивает вычислительную мощность, доступную для кодера облаков точек. Низкие задержки при этом требуются для обеспечения быстрой передачи из автомобиля в облачную среду для наблюдения за дорожным движением в реальном времени, основанном на данных, получаемых от множества автомобилей, чтобы принимать быстрые и адекватные решения на основе информации о движении. Задержки при передаче могут быть достаточно малыми при использовании технологии 5G, соответственно, сам кодер не должен вносить слишком большие задержи при кодировании. Эффективность сжатия также является крайней важной, поскольку поток данных от миллионов автомобилей, передаваемый в облачное окружение, может иметь огромный объем.
Некоторые из уже существующих технологий, относящиеся к рассеянным геометрическим данным, захваченным при помощи вращающегося лидара, были применены в методе G-PCC и позволили очень значительно повысить степень сжатия.
Во-первых, в методе G-PCC применяют угол возвышения (относительно горизонтальной поверхности земли) для захвата вращающейся головкой лидара, в соответствии с иллюстрацией фиг. 1 и фиг. 2. Головка 10 лидара содержит набор датчиков 11 (лазеры), причем в данном примере показаны пять лазеров. Головка 10 лидара может вращаться вокруг вертикальной оси z для захвата геометрических данных физических объектов. Захваченные лидаром геометрические данные затем представляют в сферических координатах (r3D, , θ), где r3D - расстояние от точки Р до центра головки лидара, - азимутальный угол поворота головки лидара относительно опорного положения, а θ - угол возвышения датчика k в головке лидара относительно опорной горизонтальной плоскости.
На фиг. 3 показано равномерное распределение по азимутальному углу, наблюдаемое в захваченных лидаром данных. Упомянутая равномерность используется в методе G-PCC для получения квази-одномерного представления облака точек, в котором, с точностью до шума, только радиус r3D принадлежит непрерывному диапазону значений, тогда как углы и θ принимают только набор дискретных значений ii=0 до I-1, где I количество азимутальных углов, используемых для захвата точек, θk ∀k=0 до K-1, где K - количество датчиков в головке 10 лидара. Фактически, метод G-PCC представляет рассеянные геометрические данные, захваченные лидаром, на двумерной плоскости дискретных углов (, θ), в соответствии с иллюстрацией, вместе со значением радиуса r3D для каждой точки.
Это свойство квази-одномерности используют в G-PCC, и в дереве занятости, и в дереве предсказания, при помощи предсказания, в пространстве сферических координат, местоположения текущей точки на основе уже кодированной точки, с использованием дискретного характера углов.
А именно, в дереве занятости интенсивно применяют DCM и энтропийно кодируют непосредственные местоположения точек в узле с помощью контекстно-адаптивного энтропийного кодера. Контексты затем получают путем локального преобразования местоположений точек в угловые координаты (, θ), из местоположения этих угловых координат относительно дискретных угловых координат ( i, θk), полученных из ранее кодированных точек. В дереве предсказания непосредственно кодируют первую версию местоположения точки в угловых координатах (r2D, , θ), где r2D - проекция радиуса на горизонтальную ось ху, в соответствии с иллюстрацией, с использованием квазиодномерного характера (r2D, i, θk) этого координатного пространства. Затем угловые координаты (r2D, , θ) преобразуют в трехмерные декартовы координаты (x,y,z), и остаток xyz кодируют для учета ошибок при преобразовании координат, аппроксимации угла возвышения и азимутального угла, а также возможного шума.
На фиг. 5 показан кодер дерева предсказания в методе G-PCC.
Сначала декартовы координаты (x,y,z) точек в облаке точек преобразуют в сферические координаты (r2D, , θ) при помощи (x,y,z)=C2A(r2D, , θ).
Функция преобразования С2А(.) задана следующим выражением:
r2D=round(sqrt(x*x+у*у)/Δlr2D)
=round(atan2(y,х)/Δl),
где round() операция округления до ближайшего целого, sqrt() - функция извлечения квадратного корня, и atan2(y,x) - функция арктангенса, взятая от у/х.
ΔIr2D и ΔI - внутренние точности радиусов и азимутальных углов, соответственно. Они, как правило, равны их соответствующим шагам квантования, т.е. ΔIφ=Δφ, и ΔIr2D=Δr2D,
где Δr2D=2M* элементарный шаг квантования,
где М - параметр кодека, который может быть сигнализирован в битовом потоке в составе набора параметров геометрии, и где элементарный шаг квантования, как правило, равен 1. Как правило, М может быть равен 0 в случае кодирования без потерь, и
где N - параметр кодека, который может быть сигнализирован в битовом потоке в составе набора параметров геометрии. Как правило, N может быть равен 17 в случае кодирования без потерь.
Для простоты далее и Δr2D=ΔIr2D.
Затем при помощи обратного преобразования сферических координат (r2D, , θ) получают декартовы координаты (xpred, ypred, zpred):
(xpred, ypred, zpred)=A2C(r2D, , θ)
где
r=r2D*Δr2D
где sin() и cos() - функции синуса и косинуса. Эти две функции могут быть аппроксимированы операциями, работающими с точностью значений с фиксированной точкой. Значения tan(θ) могут также храниться в виде значений с точностью с фиксированной точкой. Следовательно, в декодере операции с плавающей точкой не используются. Исключение операций с плавающей точкой, как правило, необходимо для упрощения аппаратной реализации кодеков.
Предсказание (r2Dpred, , θpred) сферических координат может быть получено на основе известных предков (от родительских узлов и вплоть до двух поколений старше) в дереве предсказания. Для информирования декодера о выбранном режиме предсказания из нескольких возможных режимов предсказания, индекс режима предсказания может сигнализироваться в битовом потоке. Предсказанная координата может быть получена при помощи выбранного режима предсказания и может быть уточнена до при помощи дополнительной сигнализации в битовом потоке (положительного или отрицательного) целого числа р, обозначающего количество элементарных шагов добавляемых к предсказанной координате :
Элементарный шаг может быть параметром кодирования, который может быть сигнализирован в битовом потоке в составе набора параметров геометрии с точностью с фиксированной точкой. Кодер может вычислять φstep на основе частоты и скорости вращения, с которыми вращающаяся измерительная головка выполняет захват на разных углах возвышения, к примеру, на основе количества захватов на каждый оборот головки.
В одном из вариантов индекс предсказания в битовом потоке могут не передавать, при этом предсказанную координату получают с использованием заранее заданного режима предсказания. В одном из примеров может быть равна (0,0,0). В еще одном из вариантов р может не сигнализироваться и считаться равным 0.
Остаточную ошибку (r2Dres, res, θres) сферических координат между исходными сферическими координатами и предсказанными сферическими координатами затем определяют следующим образом:
и кодируют их в битовый поток методом кодирования без потерь.
Предсказанные декартовы координаты (xpred, ypred, zpred) получают обратным преобразованием восстановленных сферических координат (r2D, φ, θ) следующим образом:
(xpred, ypred, zpred)=A2C(r2D, , θ)
Остаточную ошибку (xres,yres,zres) декартовых координат между исходными точками и предсказанными декартовыми координатами (xpred, ypred, zpred) определяют следующим образом:
(xres,yres,zres)=(x,y,z)-(xpred,ypred,zpred)
Остаточную ошибку (xres,yres,zres) декартовых координат квантуют (Q), и квантованную остаточную ошибку Q(xres,yres,zres) декартовых координат кодируют в битовый поток. Остаточная ошибка декартовых координат может кодироваться без потерь, когда шаги квантования x,y,z равны точности исходных точек (как правило, 1), или кодироваться с потерями, когда шаги квантования больше, чем точность исходных точек (как правило, шаги квантования больше 1).
Восстановленные декартовы координаты (xdec,ydec,zdec) в декодере определяют следующим образом:
(xdec,ydec,zdec)=(xpred,ypred,zpred)+IQ(Q(xres,yres,zres))
где IQ(Q(xres,yres,zres)) представляют собой результат деквантования квантованной остаточной ошибки декартовых координат.
Эти восстановленные декартовы координаты (xdec,ydec,zdec) могут использоваться в кодере, например, для упорядочивания (декодированных) точек перед кодированием атрибутов.
На фиг. 6 показан декодер дерева предсказания в методе G-PCC.
Предсказание (r2Dpred, pred, θpred) сферических координат может быть получено, в соответствии с иллюстрацией фиг. 5, на основе информации из битового потока, например, остаточной ошибки (r2Dres, res, θres) сферических координат и, опционально, индекса режима предсказания. Опционально, из битового потока получают количество р элементарных шагов step, добавляемых к предсказанной координате и предсказанную координату pred получают в соответствии с иллюстрацией фиг. 5.
Восстановленные сферические координаты (r2Drec, rec, θ) получают сложением остаточной ошибки сферических координат, декодированной из битового потока, и предсказанных сферических координат (r2Dpred, φpred, θpred):
Предсказанные декартовы координаты (xpred,ypred,zpred) получают обратным преобразованием восстановленных сферических координат (r2Drec, rec, θ) следующим образом:
)
Квантованную остаточную ошибку декартовых координат Q(xres,yres,zres) декодируют, выполняют обратное квантование (IQ) и складывают с предсказанными декартовыми координатами (xpred, ypred, zpred):
(xdec,ydec,zdec)=(xpred,ypred,zpred)+IQ(Q(xres,yres,zres))
Режим DCM был создан для того, чтобы кодеки, основанные на дереве занятости, могли обеспечивать несколько более простое кодирование рассеянных облаков точек лидара путем интенсивного использования DCM-кодированных точек для более быстрого сжатия изолированной точки. С другой стороны, кодер на основе дерева предсказания может быть построен таким образом, чтобы непосредственно обрабатывать точки в том порядке, в каком они захвачены вращающейся измерительной головкой, и строить эффективное дерево предсказания без постоянного поиска оптимальных предикторов.
В методе G-PCC применяют равномерное квантование как для азимутального угла , так и для радиуса r2D.
На фиг. 7 показано неравномерное взятие отсчетов точек в двумерном пространстве (х, у) при использовании равномерного квантования/точности для азимутального угла (сферической координаты) с шагом квантования (или точностью) и равномерное взятие отсчетов по радиусу r2D (еще одна сферическая координата) с шагом Δr2D квантования. На чертеже видно, что плотность отсчетов высока вблизи начала координат, где расположена вращающаяся измерительная головка, и становится низкой в области, удаленной от вращающейся измерительной головки.
На фиг. 8 также показана неоднородность ошибки восстановления в пространстве (х, у) после применения квантования Q() и обратного квантования IQ(), где в обоих случаях применяют равномерные шаги и Δr2D квантования.
В зависимости от значения получают либо слишком высокую точность для точек (r1, 1) вблизи вращающейся измерительной головки или недостаточную точность (r2, 2) на удалении.
В первом случае получают слишком много кодированной информации для остаточной ошибки res азимутального угла (остаточной ошибки сферических координат) для ближних точек. И наоборот, во втором случае, недостаточно кодированной информации для остаточной ошибки res азимутального угла дальних точек, чтобы получать необходимую точность значений (xpred, ypred) после обратного преобразования, в результате чего приходится кодировать остаточную ошибку декартовых координат (xres, yres), имеющую значительную абсолютную величину. В обоих случаях сжатие азимутального угла φ не является оптимальным.
Равномерное сферическое взятие отсчетов / квантование , Δr2D не позволяет получить оптимальное представление местоположений точек в условиях общей схемы со сжатием точек в декартовом пространстве.
Задача, которую необходимо решить, поставлена следующим образом: в схеме кодирования/декодирования точек в облаке точек, захваченных вращающейся измерительной головкой, необходимо повысить эффективность сжатия (выражающуюся в битрейте для заданного качества или в качестве для заданного битрейта) путем снижения неоптимальности квантования, возникающей из-за равномерных шагов квантования, применяемых, когда точки облака точек представляют с помощью сферических координат.
В соответствии с описанной задачей был предложен по меньшей мере один пример осуществления настоящего изобретения.
Сущность изобретения
В данном разделе представлено упрощенное общее описание по меньшей мере одного примера осуществления настоящего изобретения, чтобы дать базовое понимание некоторых из его аспектов. Данный раздел не является исчерпывающим описанием одного из примеров осуществления настоящего изобретения. Он не имеет целью указать на ключевые или критически важные элементы вариантов осуществления настоящего изобретения. В данном разделе лишь представлены некоторые из аспектов по меньшей мере одного из примеров осуществления настоящего изобретения, в упрощенной форме, в качестве введения к более подробному описанию, приведенному в другом разделе данного документа.
В соответствии с первым аспектом настоящего изобретения предложен способ кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект, при этом каждая точка в облаке точек ассоциирована со сферическими координатами, представляющими азимутальный угол, соответствующий углу захвата датчика, захватившего точку, и радиус, соответствующий расстоянию до точки от начала координат. Способ включает адаптивное квантование остаточной ошибки азимутального угла, вычисленной на основе азимутального угла, в зависимости от радиуса.
В соответствии с одним из примеров осуществления настоящего изобретения радиус адаптивно квантуют на основе предсказания азимутального угла, а азимутальный угол адаптивно квантуют на основе восстановленного радиуса, полученного с помощью обратного адаптивного квантования адаптивно квантованного радиуса.
В соответствии со вторым аспектом настоящего изобретения предложен способ декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, при этом каждая точка в облаке точек ассоциирована со сферическими координатами, представляющими азимутальный угол, соответствующий углу захвата датчика, захватившего точку, и радиус, соответствующий расстоянию до точки от начала координат. Способ включает обратное адаптивное квантование остаточной ошибки азимутального угла в зависимости от радиуса.
В соответствии с одним из примеров осуществления настоящего изобретения обратное адаптивное квантование остаточной ошибки азимутального угла основано на длине дуги шага квантования ().
В соответствии с одним из примеров осуществления настоящего изобретения обратное адаптивное квантование квантованной остаточной ошибки азимутального угла включает первое умножение на радиус и второе умножение на 2*π, при этом второе умножение на 2*π аппроксимируют операциями, имеющими результат, эквивалентный умножению на 8.
В соответствии с одним из примеров осуществления настоящего изобретения радиус адаптивно квантуют на основе предсказания азимутального угла, а азимутальный угол адаптивно квантуют на основе восстановленного радиуса, полученного с помощью обратного адаптивного квантования адаптивно квантованной остаточной ошибки радиуса.
В соответствии с одним из примеров осуществления настоящего изобретения при обратном адаптивном квантовании радиуса используют шаг Δr2D квантования, заданный следующим выражением:
где pred - предсказание азимутального угла , a - математическая функция, имеющая pred в качестве параметра;
при этом в обратном адаптивном квантовании остаточной ошибки азимутального угла используют шаг квантования, заданный следующим выражением:
где r2Drec - восстановленный радиус. В соответствии с одним из примеров осуществления настоящего изобретения математическая функция зависит от величины и задана следующим выражением:
В соответствии с одним из примеров осуществления настоящего изобретения математическая функция f(φpred) задана следующим выражением:
В соответствии с третьим аспектом настоящего изобретения предложено устройство для кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект. Устройство включает один или более процессоров, сконфигурированных для выполнения способа, соответствующего первому аспекту настоящего изобретения.
В соответствии с четвертым аспектом настоящего изобретения предложено устройство для декодирования, из битового потока, облака точек, представляющих физический объект. Устройство включает один или более процессоров, сконфигурированных для выполнения способа, соответствующего второму аспекту настоящего изобретения.
В соответствии с пятым аспектом настоящего изобретения предложен компьютерный программный продукт, включающий инструкции, которые при исполнении программы одним или более процессорами обеспечивают выполнение, одним или более процессорами, способа в соответствии с первым аспектом настоящего изобретения.
В соответствии с шестым аспектом настоящего изобретения предложен носитель данных, содержащий инструкции программного кода для выполнения способа в соответствии с первым аспектом настоящего изобретения.
В соответствии с седьмым аспектом настоящего изобретения предложен компьютерный программный продукт, включающий инструкции, которые при исполнении программы одним или более процессорами обеспечивают выполнение, одним или более процессорами, способа в соответствии со вторым аспектом настоящего изобретения.
В соответствии с восьмым аспектом настоящего изобретения предложен носитель данных, содержащий инструкции программного кода для выполнения способа в соответствии со вторым аспектом настоящего изобретения.
Особенности по меньшей мере одного из примеров осуществления настоящего изобретения, а также другие цели, преимущества, признаки и возможные применения по меньшей мере одного из примеров осуществления настоящего изобретения могут быть уяснены из приведенного ниже описания примеров, рассматриваемых в сочетании с приложенными чертежами.
Краткое описание чертежей
Далее, для иллюстрации, рассмотрим приложенные чертежи, где показаны примеры осуществления настоящего изобретения:
на фиг. 1 проиллюстрирован вид сбоку измерительной головки и некоторые из ее параметров, в соответствии с существующим уровнем техники;
на фиг. 2 проиллюстрирован вид сверху измерительной головки и некоторые из ее параметров, в соответствии с существующим уровнем техники;
на фиг. 3 проиллюстрировано равномерное распределение данных, захваченных вращающейся измерительной головкой, в соответствии с существующим уровнем техники;
на фиг. 4 проиллюстрировано представление точки в трехмерном пространстве в соответствии с существующим уровнем техники;
на фиг. 5 показан кодер дерева предсказания в методе G-PCC в соответствии с существующим уровнем техники;
на фиг. 6 показан декодер дерева предсказания в методе G-PCC в соответствии с существующим уровнем техники;
на фиг. 7 проиллюстрировано взятие отсчетов азимутальных углов и радиуса, относящихся к местоположениям точек в двумерном пространстве, с использованием равномерного квантования в соответствии с существующим уровнем техники;
на фиг. 8 проиллюстрировано влияние ошибки/точности в двумерном пространстве, когда азимутальные углы и радиус квантуют равномерно, в соответствии с существующим уровнем техники;
на фиг. 9 проиллюстрировано неравномерное квантование азимутальных углов, обеспечивающее равномерное квантование дуг в соответствии по меньшей мере с одним примером осуществления настоящего изобретения;
на фиг. 10 проиллюстрирована независимость равномерного квантования дуг окружности в соответствии с одним примером осуществления настоящего изобретения;
на фиг. 11 проиллюстрирована блок-схема алгоритма, где показаны шаги способа адаптивного квантования азимутальных углов в соответствии по меньшей мере с одним примером осуществления настоящего изобретения;
на фиг. 12 проиллюстрирована блок-схема алгоритма, где показаны шаги способа адаптивного квантования азимутальных углов в соответствии по меньшей мере с одним примером осуществления настоящего изобретения;
на фиг. 13 проиллюстрировано адаптивное деквантование азимутальных углов в декодере G-PCC в соответствии по меньшей мере с одним примером осуществления настоящего изобретения;
на фиг. 14 проиллюстрировано адаптивное квантование азимутальных углов и радиуса в соответствии по меньшей мере с одним примером осуществления настоящего изобретения;
на фиг. 15 проиллюстрирован пример адаптивного квантования азимутального угла φ и радиуса r2D с равномерной целевой ошибкой Δх=Δy в плоскости (х, у) в соответствии по меньшей мере с одним из примеров осуществления настоящего изобретения;
на фиг. 16 проиллюстрированы оптимальные формулы для шагов адаптивного квантования в соответствии по меньшей мере с одним примером осуществления настоящего изобретения;
на фиг. 17 проиллюстрирована блок-схема алгоритма, где показаны шаги способа адаптивного квантования радиуса и азимутального угла в соответствии по меньшей мере с одним примером осуществления настоящего изобретения;
на фиг. 18 проиллюстрировано влияние погрешности на предсказанный азимутальный угол в соответствии по меньшей мере с одним примером осуществления настоящего изобретения;
на фиг. 19 показан кодер дерева предсказания в методе G-PCC в соответствии по меньшей мере с одним из примеров осуществления настоящего изобретения;
на фиг. 20 показан декодер дерева предсказания в методе G-PCC в соответствии по меньшей мере с одним из примеров осуществления настоящего изобретения;
на фиг. 21 проиллюстрирована блок-схема алгоритма, где показаны шаги способа 100 кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект, в соответствии по меньшей мере с одним примером осуществления настоящего изобретения;
на фиг. 22 проиллюстрирован пример захваченной точки, представленной в двумерном пространстве, в соответствии с одним из примеров осуществления настоящего изобретения;
на фиг. 23 проиллюстрирован пример кодированных упорядоченных точек в соответствии с одним из примеров осуществления настоящего изобретения;
на фиг. 24 проиллюстрирован пример захваченных точек в соответствии с одним из примеров осуществления настоящего изобретения;
на фиг. 25 проиллюстрирован пример упорядоченных и квантованных захваченных точек в соответствии с одним из примеров осуществления настоящего изобретения;
на фиг. 26 проиллюстрирована блок-схема алгоритма, где показаны шаги способа 200 декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, в соответствии по меньшей мере с одним примером осуществления настоящего изобретения;
на фиг. 27 проиллюстрирована блок-схема одного из примеров системы, в которой могут быть реализованы различные аспекты и примеры осуществления настоящего изобретения.
На различных чертежах аналогичные числовые обозначения могут обозначать аналогичные компоненты.
Описание примеров осуществления изобретения
Ниже будет более полно описан по меньшей мере один из примеров осуществления настоящего изобретения, со ссылками на приложенные чертежи, на которых проиллюстрирован по меньшей мере один из примеров осуществления настоящего изобретения. Однако примеры осуществления настоящего изобретения могут быть реализованы во множестве альтернативных форм, и их не следует считать ограниченными приведенным здесь описанием. Соответственно, нужно понимать, что примеры осуществления настоящего изобретения не следует считать ограниченными конкретными описанными формами. Напротив, настоящее описание подразумевает, что в сущность и объем настоящего изобретения входят также все соответствующие модификации, эквиваленты и альтернативы.
Если чертеж является блок-схемой алгоритма, нужно понимать, что он также представляет блок-схему соответствующего устройства. Аналогично, когда чертеж является блок-схемой устройства, нужно понимать, что он также представляет блок-схему алгоритма соответствующего способа или процедуры.
По меньшей мере один из аспектов настоящего изобретения относится, в общем, к кодированию и декодированию облака точек, и по меньшей мере еще один из аспектов настоящего изобретения относится, в общем, к передаче сформированного или кодированного битового потока.
При этом рассмотренные здесь аспекты настоящего изобретения не ограничены стандартами MPEG, например, частью 5 или частью 9 стандарта MPEG-I, относящегося к сжатию облаков точек, и могут применяться, к примеру, в других стандартах или рекомендациях, как существующих, так и будущих, а также в расширениях любых из подобных стандартов и рекомендаций (включая часть 5 и часть 9 MPEG-I). Если на обратное не указано прямо, или если для этого нет технических препятствий, аспекты, рассмотренные в настоящей заявке, могут применяться как по отдельности, так и совместно.
Адаптивное квантование азимутальных углов , относящихся к точкам облака точек, позволяет получить более равномерное сэмплирование/квантование в декартовом пространстве (х,у), что дает увеличенную эффективность сжатия.
В соответствии с одним из примеров осуществления настоящего изобретения радиус r2D (сферическую координату точки в облаке точек) квантуют равномерно, а азимутальный угол (сферическую координату точки в облаке точек) квантуют адаптивно с использованием углового шага адаптивного квантования , заданного следующим выражением:
где - неравномерный шаг квантования.
В данном примере осуществления настоящего изобретения поддерживается равномерное квантование дуг т.е. поддерживается равномерное квантование/взятие отсчетов по окружностям, получаемым для каждого квантованного радиуса, в соответствии с иллюстрацией фиг. 9 и фиг. 10, где, при использовании неравномерного шага квантования, квантованные длины дуг равномерны для любых радиусов r1, r2, поскольку длины равны
На фиг. 11 проиллюстрирована блок-схема алгоритма, где показаны шаги способа адаптивного квантования азимутальных углов в соответствии по меньшей мере с одним примером осуществления настоящего изобретения.
Восстановленный радиус r2Drec получают в соответствии с описанием, относящимся к фиг. 6. Далее восстановленный радиус r2Drec используют для адаптивного определения адаптивного шага квантования. Затем получают остаточную ошибку res азимутального угла как разность между исходным азимутальным углом и предсказанным азимутальным углом, pred, согласно описанию, приведенном для фиг. 5. Затем получают квантованную остаточную ошибку азимутального угла:
где Qφ - операция адаптивного квантования (адаптивный квантователь) в зависимости от радиуса r2Drec.
Квантованная остаточная ошибка азимутального угла может быть получена следующим образом:
с помощью арифметики с фиксированной точкой, где операция round() - это операция округления представления с фиксированной точкой до ближайшего целого.
Обратно квантованная остаточная ошибка может быть получена обратным квантованием следующим образом:
где - операция обратного адаптивного квантования (обратный адаптивный квантователь) в зависимости от радиуса r2Drec.
Обратно квантованная остаточная ошибка азимутального угла может быть получена следующим образом:
с помощью арифметики с фиксированной точкой, то есть, обратно квантованная остаточная ошибка азимутального угла может быть получена с внутренней точностью
В некоторых из вариантов функция обращения (т.е. inv(x)=1/х) может аппроксимироваться менее сложными операциями, например, операциями умножения и/или битового сдвига и/или сложением/вычитанием.
Обратно квантованная остаточная ошибка азимутального угла может затем использоваться для определения восстановленного азимутального угла res следующим образом:
В одном из вариантов квантованный азимутальный угол получают для азимутального угла φ следующим образом:
Обратно квантованная остаточная ошибка азимутального угла может быть получена обратным квантованием следующим образом:
Восстановленный азимутальный угол rec равен .
Квантованный азимутальный угол может сигнализироваться в битовом потоке.
В одном из вариантов вместо сигнализации квантованного азимутального угла в битовом потоке сигнализируют квантованную остаточную ошибку азимутального угла. получают как разность между предсказанием квантованного азимутального угла и квантованным азимутальным углом . Предсказание квантованного азимутального угла может быть получено вычислением предсказанной сферической координаты pred в соответствии с описанием, приведенным в отношении фиг. 5, и с помощью операции адаптивного квантования для квантования ее в зависимости от восстановленного радиуса r2Drec:
Восстановленный азимутальный угол rec может затем быть найден следующим образом:
Или, в еще одном из вариантов:
Или, в еще одном из вариантов:
На фиг. 12 проиллюстрировано адаптивное квантование азимутального угла в кодере G-PCC в соответствии по меньшей мере с одним из примеров осуществления настоящего изобретения.
В отличие от кодера G-PCC, рассмотренного на примере фиг. 5, остаточную ошибку res азимутального угла квантуют с помощью операции адаптивного квантования:
Остаточную ошибку азимутального угла получают с помощью операции IQφ обратного адаптивного квантования:
где, как отмечалось выше, операция обратного адаптивного квантования представляет собой
В одном из вариантов умножение может аппроксимироваться менее сложными операциями, например, операциями битового сдвига и/или сложением/вычитанием.
В одном из вариантов внутреннее представление азимутального угла используют для получения более высокой точности, чем наименьший шаг квантования, где max_r - максимальный радиус точек в облаке точек. Это позволяет повысить эффективность адаптивного квантования.
На практике внутренней точности при N=18 достаточно для значительного увеличения степени сжатия, однако значение N сильно зависит от размера (например, 20 битов) трехмерного пространства, которому принадлежит облако точек.
Пусть Δ - это шаг квантования остаточной ошибки (xres,yres) декартовых координат, т.е. ожидаемая точность в декартовом пространстве для восстановленных декартовых координат (xdec,ydec). Как правило, Δ=1 для кодирования целочисленных координат без потерь, и больше 1 для кодирования с потерями. Для увеличения степени сжатия выбирают, как правило, таким образом, чтобы ее длина в декартовом пространстве равнялась Δ.
В кодере GPCC, как отмечалось ранее, внутренняя точность для азимутальных углов равна внутреннему шагу квантования угла Поскольку res получают как разность между азимутальным углом и предсказанным азимутальным углом pred с одинаковой внутренней точностью, остаточная ошибка res азимутального угла будет иметь ту же самую внутреннюю точность Внутреннее представление (с фиксированной точкой) таким образом, удовлетворяет следующему:
Остаточную ошибку азимутального угла затем получают следующим образом:
что включает дополнительное умножение на константу 2*π для компенсации множителя 2*π во внутреннем шаге квантования (и дополнительный побитовый сдвиг для реализации деления на 2N).
Внутреннее представление (с фиксированной точкой) обратно квантованной остаточной ошибки азимутального угла затем получают следующим образом:
В одном из вариантов значение 2*π может быть представлено значением с фиксированной точкой.
В альтернативных реализациях, чтобы можно было использовать более простые операции/вычисления, выбирают таким образом, чтобы умножение на с фиксированной точкой можно было заменить на несколько операций побитового сдвига и сложения, и таким образом, значение имеет несколько битов, равных единице. К примеру, когда =4, 5, 6, 7 или 8; то используют только 1, 2, 2, 3 или 1 бит, поэтому умножение может быть реализовано 1, 2, 2, 3 или 1 операциями побитового сдвига и таким же количеством сложений. Чтобы приблизить = Δ, =8 является одним из наилучших вариантов (т.е. ), обеспечивающим хороший компромисс между количеством необходимых операций и эффективностью сжатия.
В одном из вариантов, об адаптивном квантовании могут сигнализировать в некотором синтаксическом элементе в наборе параметров геометрии, например, путем добавления флага, к примеру, uniform_phi_quantization_flag («флаг равномерного квантования фи»)
Если синтаксический элемент указывает на поддержку адаптивного квантования, то адаптивное квантование выполняют для всех точек, кодируемых с помощью дерева предсказания. В противном случае адаптивное квантование не используют. Это позволяет обеспечить обратную совместимость с битовым потоком G-PCC, где адаптивное квантование не может быть активировано или деактивировано согласно специальному синтаксическому элементу.
Обратимся к фиг. 12: восстановленный азимутальный угол rec получают сложением остаточной ошибки азимутального угла и предсказанного азимутального угла pred.
Остаточная ошибка азимутального угла может кодироваться в битовый поток без потерь.
На фиг. 13 проиллюстрировано адаптивное деквантование азимутального угла в декодере G-PCC в соответствии по меньшей мере с одним из примеров осуществления настоящего изобретения.
В отличие от кодера G-PCC, описанного в связи с фиг. 6, восстановленный азимутальный угол (r2Drec, rec, θ) получают при помощи сложения остаточной ошибки (r2Dres, θres) азимутального угла и предсказанного азимутального угла (r2Dpred, pred, θpred):
где остаточную ошибку азимутального угла получают с помощью операции обратного адаптивного квантования.
В соответствии с одним из примеров осуществления настоящего изобретения радиус r2D адаптивно квантуют на основе предсказания pred азимутального угла, а азимутальный угол φ адаптивно квантуют на основе восстановленного радиуса r2Drec.
В соответствии с иллюстрацией фиг. 14, в данном примере осуществления настоящего изобретения путем соответствующего выбора шагов и адаптивного квантования обеспечивается равномерная точность квантования в декартовой плоскости (х, у).
Выбор шагов и подразумевает выполнение обратного преобразования из сферических координат в декартовы координаты, чтобы получить требуемую равномерность в плоскости (х, у).
Пусть Δх и Δy - целевые ошибки квантования в декартовой плоскости (х, у), или расхождения между квантованными значениями в пространстве сферических координат и обратным преобразованием в декартово пространство. Необходимо найти наибольшие шаги и квантования, обеспечивающие целевые ошибки Δх и Δу. Максимизация размера шагов необходима, чтобы не кодировать избыточную сферическую информацию при заданных целевых ошибках.
К примеру, может быть выбрано Δх=Δу=Δ, чтобы получить равномерную ошибку по всем направлениям в декартовой плоскости (х, у). Это дает преимущества при сжатии, если геометрический характер облака точек одинаков по оси х и по оси у.
В еще одном из примеров может быть выбрано Δх=Δy=1, чтобы исключить наличие остаточной ошибки (xres, yres) сферических координат. Преимущество такого решения заключается в упрощении кодера, так как можно опустить шаг вычисления остатка декартовых координат. Также, согласно практическим испытаниям, оно дает более эффективное сжатие при кодировании без потерь. Также испытания показали, что из-за погрешностей вычислений при реализации с фиксированной точкой в остаточной ошибке (xres, yres) декартовых координат может оставаться небольшой шум, и не все их значения будут равны нулю, несмотря на то, что большинство будут нулевыми. Простой кодер длины серии может захватывать этот малый шум без усложнения кодека и позволяет реализовать кодирование без потерь с высокой эффективностью сжатия.
На фиг. 15 проиллюстрирован пример адаптивного квантования азимутального угла и радиуса r2D с равномерной целевой ошибкой Δх=Δу в плоскости (х, у).
В каждой квантуемой квадратной области (х, у) декартового пространства шаг адаптивного квантования (обозначаемый Δr в приведенных ниже уравнениях и на фиг. 16) и шаг адаптивного квантования (обозначаемый в приведенных ниже уравнениях и на фиг. 16) выбирают таким образом, чтобы квантованный сектор угла, полученный с использованием шагов и Δr квантования, содержался внутри квантованного квадрата в декартовом пространстве.
Оптимальные (т.е. наибольшие) шаги и Δr квантования, удовлетворяющие этому условию при однородной целевой ошибке Δх=Δу, равны
Это можно доказать, начав с фиг. 16, где черной точкой показана восстановленная позиция любой точки, принадлежащей окружающему сектору угла. Сектор угла, в свою очередь, содержится внутри прямоугольника шириной Δх и высотой Δу.
Чтобы гарантировать, что сектор угла квантования поместится в прямоугольник Δх*Δу, шаги и Δr квантования должны быть выбраны так, что:
Поскольку длина отрезка меньше, чем длина дуги, т.е. и эти уравнения могут быть аппроксимированы двумя более простыми условиями:
Как отмечалось выше, желательно максимизировать размеры шагов квантования, поэтому эти неравенства нужно преобразовать в уравнения для определения оптимальных шагов квантования:
Эту систему уравнений легко решить и получить формулы для шагов квантования, а именно:
Как отмечалось выше, для анизотропного сигнала предпочтительно иметь Δх=Δу=Δ. Также, в первом приближении, особенно для малых шагов квантования, можно допустить, что rmin равно rmax:
rmin=rmax-r2Drec+Δr/2.
С помощью этих упрощений и аппроксимаций получаем:
Наконец, аппроксимируя r2Drec+Δr/2 значением r2Drec, получаем уравнения (А) и (В).
На фиг. 17 проиллюстрирована блок-схема алгоритма, где показаны шаги способа адаптивного квантования радиуса r2D и азимутального угла в соответствии по меньшей мере с одним примером осуществления настоящего изобретения.
Сначала получают предсказание pred азимутального угла (например, из процедуры декодирования) и это предсказание используют для определения шага адаптивного квантования радиуса r2Drec:
Затем, в случае кодирования на основе предсказания, получают квантованную остаточную ошибку Qr2Dres радиуса. В противном случае получают квантованный радиус Qr. Выполняют обратное квантование над квантованной остаточной ошибкой Qr2Dres радиуса (или Qr) и получают восстановленную остаточную ошибку IQr2Dres радиуса (или восстановленный радиус r2Drec). В случае кодирования на основе предсказания восстановленный радиуса r2Drec определяют как IQr2Dres+r2Dpred.
Дальнейшие шаги аналогичны показанным на фиг. 11. Восстановленный радиус r2Drec используют для определения шага адаптивного квантования.
Затем получают квантованную остаточную ошибку азимутального угла (либо с помощью вычисления на стороне кодера, либо при помощи декодирования на стороне декодера), выполняют обратное квантование этой квантованной остаточной ошибки азимутального угла с использованием шага адаптивного квантования и получают восстановленную остаточную ошибку азимутального угла.
Наконец, восстановленный азимутальный угол φres получают сложением предсказанного азимутального угла pred и восстановленной остаточной ошибки азимутального угла.
При определении двух шагов и может возникать некоторая погрешность, в результате чего равномерные целевые ошибки Δх и Δу могут быть превышены. В особенности, это является проблемой, когда ошибки Δх и Δу подобраны для устранения остатка в декартовых координатах ху, поскольку остатка для компенсации неточностей уже не будет. Более тщательная разработка процедуры определения шагов и позволяет учесть эффект возникновения упомянутых погрешностей и обеспечить фактическое соблюдение целевых ошибок Δх и Δу.
Погрешности могут возникать вследствие квантования предсказанного азимутального угла pred использованием элементарного шага step. Это дает погрешность в пределах вплоть до step/2 для pred. В соответствии с иллюстрацией фиг. 18, эта погрешность распространяется в Δr (=) и через функции синуса и косинуса). Еще одной причиной является точность вычисления тригонометрических функций. В результате неточности вычислений возникает ошибка в пределах Δε для косинуса и синуса. Неточность может возникать из-за вычислений с фиксированной точкой или аппроксимации функций синуса и косинуса, и т.п. Еще одной причиной может быть дополнительная погрешность Δi вычислений, а именно, при делении на радиус в формулах для .
Все эти погрешности могут складываться друг с другом.
Рассмотрим функцию
Максимально значение ее производной равной sqrt(2). В первом приближении ошибка вследствие квантования предсказанного угла pred равна sqrt(2) step/2. При этом суммарная погрешность для синуса и косинуса равна 2Δε. Следовательно, ошибка для функции находится в пределах
Пусть E≥0 будет максимальной абсолютной величиной ошибки Δε'. Для сохранения целевой ошибки Δх=Δу в плоскости (х, у), необходимо оставить допуск для аппроксимации функции синус плюс косинус, изменив формулу шага квантования следующим образом:
Поскольку Е сложно оценить, можно выбрать функцию f таким образом, что:
и изменить формулу шага квантования до следующей:
В одном из вариантов функция f может быть выбрана как функция величины
где g - некоторая функция.
В еще одном из вариантов может быть выбрано:
где β - положительный параметр, β≥1.
В еще одном из вариантов может быть выбрано:
для положительного параметра α≥1. С другой стороны, когда применяют остаток в декартовых координатах, может быть нежелательным кодировать радиус r2D и азимутальный угол с точностью, которая будет потеряна из-за последующих погрешностей Δi вычислений, при этом может быть желательным иметь α≤1, так что:
Практические испытания показали, что α=0.85 позволяет получить отличные результаты.
На фиг. 19 показан кодер дерева предсказания в методе G-PCC в соответствии по меньшей мере с одним из примеров осуществления настоящего изобретения.
В отличие от кодера G-PCC, рассмотренного на примере фиг. 12, адаптивный квантователь выполняет операции в соответствии с одним из уравнений (В), (D) or (G). Обратный адаптивный квантователь I выполняет обратные операции.
Остаточную ошибку r2Dres радиуса квантуют при помощи адаптивного квантователя Qr, в котором используют предсказанный азимутальный угол pred.
Qr2Dres=Qr(r2Dres, pred)
где адаптивный квантователь Qr выполняет операции согласно уравнению (А), (С), (Е) или (F). Обратный адаптивный квантователь IQr выполняет обратные операции.
Восстановленный радиус r2Drec получают обратным квантованием квантованной остаточной ошибки Qr2Dres при помощи обратного адаптивного квантователя IQr и сложения обратно квантованной остаточной ошибки IQr2Dres радиуса с предсказанным радиусом r2Dpred.
Восстановленный радиус r2Drec используют в качестве параметра адаптивного квантования в адаптивном квантователе и обратном адаптивном квантователе
В соответствии с одним из примеров осуществления настоящего изобретения, в котором квантование тщательно подобрано для кодирования без потерь, остаточная ошибка Q(xres,yres,zres) декартовых координат систематически равна нулю, и кодировать ее не нужно.
На фиг. 20 показан декодер дерева предсказания в методе G-PCC в соответствии по меньшей мере с одним из примеров осуществления настоящего изобретения.
В отличие от декодера G-PCC, описанного в связи с фиг. 13, восстановленные сферические координаты (r2Drec, rec, θ) получают сложением остаточной ошибки (IQrres, θres) сферических координат и предсказанных сферических координат (r2Dpred, pred, θpred):
где остаточная ошибка IQrres сферических координат получена при помощи обратного квантователя IQr.
Обозначим ' угол, который удовлетворяет для любых в диапазоне и Адаптивный квантователь Qr может выполнять операцию
Qr2Dres=round(r2Dres*Qscale)
с помощью арифметики с фиксированной точкой, где sin и cos, соответственно, аппроксимации функций синуса и косинуса с фиксированной точкой, а операция round осуществляет округление до ближайшего целого. Обратный квантователь IQr может выполнять операцию
r2Drec=Qr2Dres/Qscale
с помощью арифметики с фиксированной точкой, так что восстановленный радиус r2Drec получают с внутренней точностью ΔIr2D.
Квантователь может выполнять операцию
с помощью арифметики с фиксированной точкой, где операция round() - это операция округления представления с плавающей точкой до ближайшего целого.
Обратный квантователь может выполнять операцию
с помощью арифметики с фиксированной точкой, так что получают с внутренней точностью
Такая реализация эквивалентна использованию
при Δ=1.
В качестве компромисса между сложностью вычислений и эффективностью кодирования, в некоторых альтернативных вариантах осуществления настоящего изобретения может выполняться описанное выше дополнительное упрощение вычислений на шаге квантования.
На фиг. 21 проиллюстрирована блок-схема алгоритма, где показаны шаги способа 100 кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект, в соответствии по меньшей мере с одним примером осуществления настоящего изобретения.
Геометрические данные облака точек, т.е. местоположения точек облака точек в трехмерном пространстве, захватывают при помощи вращающей измерительной головки.
Такой вращающейся измерительной головкой может быть описанная выше вращающаяся головка 10 лидара, содержащая множество лазеров (датчиков). Однако объем правовой защиты настоящего изобретения не ограничен вращающейся головкой лидара и включает любые измерительные головки, способные вращаться вокруг одной из осей и захватывать местоположения точек в трехмерном пространстве, описывающие физический объект, для каждого угла захвата. Упомянутыми датчиками могут быть камеры, датчики глубины, лазеры, лидары или сканеры.
Захваченные местоположения в трехмерном пространстве представляют в двумерной системе координат (,λ), в соответствии с иллюстрацией фиг. 22, вместе со значениями радиусов r2D или r3D. Координата φ это азимутальный угол поворота измерительной головки, дискретные значения которой обозначены i (∀i=0 до I - 1). Координата λ - это индекс датчика, дискретные значения которого обозначены λk(∀k=0 до K-1). Радиус r2D или r3D принадлежит непрерывному диапазону значений.
Благодаря равномерному вращению (повороту) измерительной головки и непрерывному захвату с фиксированным временным интервалом, азимутальное расстояние между двумя точками, регистрируемыми одним датчиком, кратно элементарному азимутальному сдвигу , в соответствии с иллюстрацией фиг. 22. Затем, например, в первый момент t1 времени захвата пять точек P1(t1),…, Pk(t1),… P5(t1) регистрируют при помощи пяти датчиков головки 10 лидара на фиг. 1 при азимутальном угле 1, во второй момент t2 времени захвата регистрируют пять точек P1(t2),…, Pk(t2),… P5(t2) при помощи пяти датчиков головки 10 лидара при азимутальном угле и т.п. Следовательно, дискретное значение 1 можно рассматривать как квантованное значение азимутальных углов точек P1(t1),…, Pk(t1),… P5(t1); и квантование выполняют с помощью шага квантования. Аналогично, дискретное значение 2 можно рассматривать как квантованное значение азимутальных углов φ точек P1(t2),…, Pk(t2),… P5(t2).
На шаге 110 для каждой точки Pn в облаке точек получают индекс λk(n) (из множества индексов датчиков λk(∀k=0 до K-1)), относящийся к датчику, захватившему точку Pn, азимутальный угол i(n) (из множества дискретных углов i (∀i=0 до I - 1)), являющийся углом захвата упомянутого датчика, и значение rn радиуса для сферических координат точки Pn. Для простоты λk(n) и индекс i(n) далее будут обозначаться, соответственно, λn и n. Следовательно, n - это не угол, а индекс i (∀i=0 до I-1), указывающий на угол i. Однако, поскольку между индексом n и связанным с ним собственно азимутальным углом существует однозначное соответствие i(n) = φn, величину n все-таки называют азимутальным углом.
В соответствии с одним из примеров осуществления шага 110, индекс λn датчика и азимутальный угол n получают путем преобразования трехмерных координат (xn,yn,zn), отражающих местоположение в трехмерном пространстве захваченной точки Pn. Координаты (xn,yn,zn) в трехмерном декартовом пространстве могут быть выходными данными измерительной головки.
На шаге 120 точки в облаке точек упорядочивают по азимутальным углам n и индексам λn датчиков.
В соответствии с одним из примеров осуществления шага 120, точки упорядочивают в лексикографическом порядке, сначала по азимутальному углу и затем по индексу датчика. Возвращаясь к фиг. 22, упорядоченные захваченные точки имеют следующий вид: P1(t1),…, Pk(t1),… P5(t1),P1(t2),…,Pk(t2),… P5(t2),…,P1(tn),…,Pk(tn),… P5(tn).
Порядковый индекс o(Pn) точки Pn получают следующим образом:
о(Pn) = n*K+λn
В соответствии с одним из примеров осуществления шага 120, точки упорядочивают в лексикографическом порядке, сначала по индексу датчика и затем по азимутальному углу. Порядковый индекс о(Pn) точки Pn получают следующим образом:
o(Pn)=λn*1 + n
На шаге 130 разности Δon порядковых индексов, каждая из которых представляет собой разность между порядковыми индексами двух последовательных точек Pn-1 и Pn (для n = от 2 до N), получают следующим образом:
Δon=o(Pn)-о(Pn-1)
Кодирование упорядоченных точек в битовый поток В может включать кодирование по меньшей мере одной разности Δon порядковых индексов. Опционально, это может включать кодирование значений rn радиуса (по существу, представляющих собой либо r2D, либо r3D для точки Pn), остатков (xres,n,yres,n,zres,n) трехмерных декартовых координат упорядоченных точек и остатков res,n углов.
Порядковый индекс о(P1) первой точки Р1 может кодироваться в битовый поток В непосредственно. Это эквивалентно произвольному заданию порядкового индекса виртуальной нулевой точки равным нулю, т.е. о(Р0)=0 и кодированию Δo1=о(P1)-о(Р0)=o(P1).
При известных порядковом индексе о(Р1) первой точки и разности Δon порядковых индексов можно рекурсивно восстановить порядковый индекс о(Pn) любой точки Pn следующим образом:
о(Pn)=о(Pn-1)+Δon
Затем получают порядковые индексы λn и n датчика и азимутального угла, соответственно:
где деление / K представляет собой целочисленное деление (или евклидово деление). Соответственно, о(P1) и Δon являются альтернативными представлениями λn и n.
На шаге 140 в битовый поток кодируют порядковые индексы о(Pn), относящиеся к упорядоченным точкам, при помощи кодирования (N-1) разностей порядковых индексов Δon (∀n=2 до N), где N - количество упорядоченных точек. Каждый порядковый индекс о(Pn) представляет собой разность между порядковыми индексами, относящимися к двум последовательным упорядоченным точкам. На фиг. 23 показаны пять упорядоченных точек (черные кружки): две точки Pn и Pn+1 были захвачены в момент t1 времени при азимутальном угле с (среди углов i's), и три точки были захвачены в момент t2 времени при азимутальном угле с+. Предположим, что координаты точки Pn в плоской системе координат (,λ) известны заранее, тогда первую разность порядковых индексов Δon+1 можно получить как разность между порядковым индексом о(Pn+1), относящимся к точке Pn+1, и порядковым индексом о(Pn), относящимся к точке Pn. Вторую разность Δon+2 порядковых индексов получают как разность между порядковым индексомм о(Pn+2), относящимся к еще одной упорядоченной точке Pn+2 и порядковым индексом о(Pn+1), относящимся к Pn+1, и т.д.
Упорядочивание захваченных точек обеспечивает взаимосвязь между точками, захваченными различными датчиками во вращающейся измерительной головке. Соответственно, для кодирования упорядоченных точек достаточно единой процедуры, что дает очень простое кодирование с малыми задержками.
Для восстановления точек из разностей Δon порядковых индексов необходима такая информация как количество N точек в облаке точек, порядковый индекс о(P1) первой точки в двумерной системе координат (,λ) и конфигурационные параметры измерений, такие как элементарный азимутальный сдвиг или угол θn возвышения, соответствующий каждому из датчиков. Эта информация может также кодироваться в битовый поток или сигнализироваться иными средствами, или может быть известна в декодере заранее.
В соответствии с одним из примеров осуществления шага 140, разности Δon порядковых индексов кодируют энтропийно.
Опционально, способ на шаге 150 дополнительно включает кодирование, в битовый поток В, значений rn радиуса сферических координат, связанных с упорядоченными точками облака точек.
В соответствии с одним из примеров осуществления шага 150 значения радиуса rn квантуют.
В соответствии с одним из примеров осуществления шага 150 значения радиуса rn квантуют.
В соответствии с одним из примеров осуществления шага 150 значения радиуса rn квантуют и кодируют энтропийно.
В соответствии с одним из примеров осуществления шага 150 значения радиуса rn представляют собой радиус r3D.
В соответствии с одним из примеров осуществления шага 150 значения радиуса rn представляют собой проекцию радиуса на горизонтальную плоскость ху, в соответствии с иллюстрацией фиг. 4.
Опционально, способ на шаге 160 дополнительно включает кодирование остаточных ошибок (xres,n,yres,n,zres,n) трехмерных декартовых координат упорядоченных точек Pn на основе их трехмерных декартовых координат (xn,yn,zn), декодированных азимутальных углов dec.n, декодированных значений rdec,n радиуса, полученных на основе значений rn радиуса, и индексов λn датчиков.
В соответствии с одним из примеров осуществления шага 160 остаточные ошибки (xres,n,yres,n,zres,n) представляют собой разности между трехмерными декартовыми координатами (xn,yn,zn) точек в облаке точек и оценочными трехмерными координатами (xestim,n, yestim,n,zestim,n).
В соответствии с одним из примеров осуществления шага 160, остаточные ошибки (xres,n,yres,n,zres,n) заданы следующим выражением:
В соответствии с одним из примеров осуществления шага 160, оценочные координаты (xestim,n,yestim,n), относящиеся к упорядоченной точке Pn, основаны на декодированных азимутальных углах dec,n и декодированных значениях rdec,n радиуса, относящихся к точке Pn.
В соответствии с одним из примеров осуществления шага 160, остаточные ошибки (xres,n,yres,n,zres,n) энтропийно кодируют.
В соответствии с одним из примеров осуществления шага 160, оценочные координаты (xestim,n,yestim,n) заданы следующим выражением:
В соответствии с одним из примеров осуществления шага 160, оценочные координаты (zestim,n), относящиеся к упорядоченной точке, основаны на декодированном значении rdec,n радиуса, относящемся к точке, и угле θn возвышения датчика, который захватил эту точку.
В соответствии с одним из примеров осуществления шага 160, оценочные координаты (zestim,n) зависят также от индексов λn датчиков.
В соответствии с одним из примеров осуществления шага 160, оценочные координаты (zestim,n) заданы следующим выражением:
zestim,n=rdec,ntanθn.
Опционально, способ на шаге 170 дополнительно включает кодирование, в битовый поток В, остаточных ошибок res,n азимутального угла, относящихся к упорядоченным точкам. В соответствии с одним из примеров осуществления шага 170, значения n азимутального угла квантуют следующим образом:
где (Pn) - исходный азимутальный угол точки Pn. В этом случае множество дискретных углов i(0≤i<I) по существу задано выражением и можно получить
Порядковый индекс о(Pn) точки Pn, следовательно, получают следующим образом:
Остаточные ошибки res,n азимутальных углов заданы следующим выражением:
Данный пример осуществления шага 170 позволяет получить определенные преимущества, поскольку зачастую на практике не все точки могут быть захвачены в каждый из моментов захвата из-за захвата шума или из-за неидеального выравнивания всех датчиков, или если по меньшей мере один из лазерных лучей датчиков лидара не был отражен. В этом случае захваченные точки могут выглядеть в соответствии с иллюстрацией фиг. 24. Квантование азимутальных углов (Pn) дает более простое дискретное представление точек в двумерной системе координат (,λ), в соответствии с иллюстрацией фиг. 25, что позволяет более просто упорядочить точки облака точек.
Остаточные ошибки res,n азимутального угла кодируют в битовый поток В, предпочтительно при помощи квантования и/или энтропийного кодирования.
Данный пример осуществления шага 170 также уменьшает динамику изменения кодируемых в битовый поток азимутальных углов, поскольку кодируют только остаток, а не значения в полном диапазоне. Обеспечивает более высокая эффективность сжатия.
Опционально способ на шаге 180 дополнительно включает получение декодированных азимутальных углов dec,n на основе азимутального угла n.
В соответствии с одним из примеров осуществления шага 180, декодированные азимутальные углы dec,n заданы следующим выражением:
В соответствии с одним из примеров осуществления шага 180, декодированные азимутальные углы dec,n получают на основе азимутального угла n, элементарного азимутального сдвига и остаточной ошибки res,n азимутальных углов. В соответствии с одним из примеров осуществления шага 180 декодированные азимутальные углы dec,n заданы следующим выражением:
В соответствии с одним из примеров осуществления шага 180, декодированные азимутальные углы dec,n получают на основе азимутального угла n, элементарного азимутального сдвига и декодированной остаточной ошибки dec,res,n угла, получаемой деквантованием квантованной остаточной ошибки res,n азимутального угла, определяемой уравнением 3.
В соответствии с одним из примеров осуществления шага 180, декодированные азимутальные углы dec,n заданы следующим выражением:
Опционально, на шаге 190, на основе кодированных значений rn радиуса получают декодированные значения rdec,n радиуса.
В соответствии с одним из примеров осуществления шага 190, декодированные значения радиуса rdec,n получают деквантованием квантованных значений rn.
На фиг. 26 проиллюстрирована блок-схема алгоритма, где показаны шаги способа 200 декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, в соответствии по меньшей мере с одним примером осуществления настоящего изобретения.
Для декодирования точек облака точек из битового потока необходима следующая информация: количество N точек в облаке точек, порядковый индекс о(P1) первой точки в двумерной системе координат (,λ), конфигурационные параметры измерений, такие как элементарный азимутальный сдвиг или угол θk возвышения, свойственный каждому датчику k. Эта информация может также декодироваться из битового потока В или может быть принята при помощи любых иных средств, или может быть известна в декодере заранее. N точек облака точек декодируют рекурсивно.
На шаге 210 по меньшей мере одну разность Δon (n=2 до N) порядковых индексов декодируют из битового потока В. Каждую разность Δon порядковых индексов декодируют для текущей точки Pn.
На шаге 220 получают порядковый индекс о(Pn) для текущей точки Pn при помощи следующего:
о(Pn)=o(Pn-1)+Δon
Разность Δon порядковых индексов представляет собой разность между порядковым индексом, относящимся к текущей точке Pn, и другим порядковым индексом о(Pn-1), относящимся к ранее декодированной точке Pn-1.
На шаге 230 на основе порядкового индекса о(Pn) получают индекс λn датчика, относящийся к датчику, захватившему текущую точку Pn, и азимутальный угол n, представляющий собой угол захвата этого датчика.
В соответствии одним из примеров осуществления шага 230 индекс λn датчика и азимутальный угол n получают при помощи уравнений (1) и (2).
Опционально на шаге 240 на основе азимутального угла φn получают декодированный азимутальный угол dec,n.
В соответствии с одним из примеров осуществления шага 240 декодированные азимутальные углы dec,n получают на основе азимутального угла n и элементарного азимутального сдвига .
В соответствии с одним из примеров осуществления шага 240, декодированный азимутальный угол dec,n задан следующим выражением:
В соответствии с одним из примеров осуществления шага 240, декодированный азимутальный угол dec,n получают на основе остаточной ошибки res,n азимутального угла, декодированной из битового потока В.
В соответствии с одним из примеров осуществления шага 240, декодированный азимутальный угол dec,n задан следующим выражением:
Опционально на шаге 250 из битового потока В декодируют значение rn радиуса сферических координат текущей точки Pn.
В соответствии с одним из примеров осуществления шага 250, декодированные значения радиуса rn деквантуют и получают декодированные значения rdes,n радиуса.
В соответствии с одним из примеров осуществления шага 250 значения радиуса rn энтропийно декодируют и деквантуют, и получают декодированные значения rdec,n радиуса.
Опционально на шаге 260 из битового потока В декодируют остаточную ошибку (xres,n,yres,n,zres,n) трехмерных декартовых координат текущей точки Pn.
В соответствии с одним из примеров осуществления шага 260 остаточную ошибку (xres,n,yres,n,zres,n) энтропийно декодируют.
Опционально, на шаге 240 декодируют трехмерные декартовы координаты (x,y,z) текущей точки Pn на основе декодированной остаточной ошибки (xres,n,yres,n,zres,n) трехмерных декартовых координат текущей точки Pn, значения rn радиуса, декодированного азимутального угла dec,n и индекса λn датчика.
В соответствии с одним из примеров осуществления шага трехмерные декартовы координаты (x,y,z) текущей точки Pn являются суммами остаточных ошибок (xres,n,yres,n,zres,n) и оценочных трехмерных координат (xestim, yestim, zestim):
В соответствии с одним из примеров осуществления шага 270 оценочные координаты (xestim,yestim), относящиеся к текущей точке Pn, основаны на азимутальном угле n и значении rn радиуса.
В соответствии с одним из примеров осуществления шага 270 значения радиуса оценочные координаты (xestim, yestim) заданы следующим выражением:
В соответствии с одним из примеров осуществления шага 270 значения радиуса оценочные координаты (xestim,n,yestim,n) заданы следующим выражением:
где rdec,n - декодированные значения радиуса, полученные на основе значений rn радиуса. К примеру, декодированные значения rdec,n могут быть получены деквантованием значений rn радиуса.
В соответствии с одним из примеров осуществления шага 270 оценочные координаты (zestim), относящиеся к текущей точке Pn, основаны значении rn радиуса, относящемся к текущей точке Pn, и угле θk возвышения датчика k, захватившего текущую точку Pn.
В соответствии с одним из примеров осуществления шага 270, оценочные координаты (zestim) заданы следующим выражением:
zestim=rn tanθk
В соответствии с одним из примеров осуществления шага 270, оценочные координаты (zestim) зависят также от индексов λn датчиков.
В соответствии с одним из примеров осуществления шага 270, оценочные координаты (zestim) заданы следующим выражением:
zestim=rn tanθλn.
В целом, в кодере/декодере, проиллюстрированных на фиг. 21 и 26, может применяться равномерное квантование для сферических координат (, r2D), и соответственно, им свойственны те же недостатки, что и дереву предсказания.
Значения rn радиуса могут квантоваться адаптивно при помощи адаптивного квантователя Qr.
Декодированные значения rdec.n могут быть получены деквантованием квантованных значений rn радиуса с помощью обратного адаптивного квантователя IQr.
Значения азимутальных углов n могут квантоваться при помощи адаптивного квантователя
Квантованные азимутальные углы n могут обратно квантоваться при помощи обратного адаптивного квантователя
На фиг. 27 проиллюстрирована блок-схема одного из примеров системы, в которой могут быть реализованы различные аспекты и примеры осуществления настоящего изобретения.
Система 300 может быть выполнена в виде одного или более устройств, включающих различные компоненты, описанные ниже. В различных вариантах осуществления настоящего изобретения система 300 может быть сконфигурирована для реализации одного или более из аспектов, описанных в настоящей заявке.
Примеры оборудования, которые могут составлять систему 300 в целом, или ее часть, включают персональные компьютеры, портативные компьютеры, смартфоны, планшетные компьютеры, цифровые мультимедийные телеприставки, цифровые телеприемники, персональные системы видеозаписи, подключенные к Интернету бытовые приборы, подключенные к Интернету автомобили и их соответствующие системы обработки данных, устанавливаемые на голове дисплейные устройства или очки с прозрачными дисплеями (head mounted display devices, HMD), проекторы (мультимедийные), среды виртуальной реальности CAVE (системы со множеством дисплеев), серверы, видеокодеры, видеодекодеры, постпроцессоры, обрабатывающие выходные данные с видеодекодера, препроцессоры, подающие входные данные в видеокодер, веб-серверы, телеприставки или любые другие устройства для обработки облаков точек, видеоинформации, изображений или иные устройства связи. Элементы системы 300, по отдельности или в комбинации, могут быть реализованы в одной интегральной схеме (integrated circuit, IC), нескольких интегральные схемах и/или на дискретных компонентах. К примеру, по меньшей мере в одном из вариантов осуществления настоящего изобретения элементы обработки данных или кодера/декодера в системе 300 могут быть распределены среди нескольких интегральных схем и/или дискретных компонентов. В различных вариантах осуществления настоящего изобретения система 300 может быть соединена, с возможностью связи, с другими подобными системами или с другими электронными устройствами, например, при помощи шины связи или при помощи специальных портов ввода и/или вывода.
Система 300 может включать по меньшей мере один процессор 310, сконфигурированный для исполнения инструкций, загружаемых в него для реализации, к примеру, различных аспектов, описанных в настоящей заявке. Процессор 310 может иметь встроенную память, интерфейс ввода-вывода и различные иные схемы, известные на существующем уровне техники. Система 300 может включать по меньшей мере одну память 320 (к примеру, энергозависимое запоминающее устройство и/или энергонезависимое запоминающее устройство). Система 300 может включать устройство 340 хранения, которое может включать энергонезависимую память и/или энергозависимую память, включая, без ограничения перечисленным, электрически перепрограммируемую память «только для чтения» (Electrically Erasable Programmable Read-Only Memory, EEPROM), память «только для чтения» (Read-Only Memory, ROM), программируемую память «только для чтения» (Programmable Read-Only Memory, PROM), память с произвольным доступом (Random Access Memory, RAM), динамическую память с произвольным доступом (Dynamic Random-Access Memory, DRAM), статическую память с произвольным доступом (Static Random-Access Memory, SRAM), флэш-память, привод магнитных дисков и/или привод оптических дисков. Устройство 340 хранения в качестве неограничивающих примеров может включать внутреннее устройство хранения, подключаемое устройство хранения и/или доступное по сети устройство хранения.
Система 300 может включать модуль 330 кодера/декодера, сконфигурированный, например, для обработки данных с целью получения кодированных/декодированных геометрических данных облака точек, при этом модуль 330 кодера/декодера может иметь собственные процессор и память. Модуль 330 кодера/декодера может представлять собой модуль (или модули), входящие в состав устройства для выполнения функций кодирования и/или декодирования. Как известно, устройство может содержать модуль кодирования, модуль декодирования или оба модуля одновременно. При этом модуль 330 кодера/декодера 330 может быть реализован в виде отдельного элемента 300 или может быть встроен в процессор 310 в виде комбинации аппаратного и программного обеспечения, что известных специалистам в данной области техники.
Программный код, загружаемый в процессор 310 или кодер/декодер 330 для выполнения различных аспектов, описанных в настоящей заявке, может храниться в устройстве 340 хранения и впоследствии загружаться в память 320 для исполнения процессором 310. В соответствии с различными вариантами осуществления настоящего изобретения, одно или более из следующего: процессор 310, память 320, устройство 340 хранения я модуль 330 кодера/декодера могут хранить один или более различных объектов при выполнении процедур, описанных в настоящей заявки. Такие хранимые объекты включают, без ограничения перечисленным, кадр облака точек, геометрию/атрибуты кодируемых/декодируемых видео/изображений или фрагменты геометрии/атрибутов кодируемых/декодируемых видео/изображений, битовый поток, матрицы, переменные и промежуточные или окончательные результаты обработки уравнений, формул, операций и логики выполнения операций.
В некоторых из вариантов осуществления настоящего изобретения память внутри процессора 310 и/или модуля 330 кодера/декодера может использоваться для хранения инструкций и для использования в качестве рабочей памяти при обработке, которая может выполняться во время кодирования или декодирования.
В других вариантах осуществления настоящего изобретения, однако, для одной или более из подобных функций может применяться память, внешняя по отношению к устройству обработки данных (например, таким устройством обработки данных может быть процессор 310 или модуль 330 кодера/декодера). Внешней памятью может быть память 320 и/или устройство 340 хранения, к примеру, динамическая энергозависимая память и/или энергонезависимая флэш-память. В некоторых из вариантов осуществления настоящего изобретения внешняя энергонезависимая флэш-память может использоваться для хранения операционной системы телевидения. По меньшей мере в одном варианте осуществления настоящего изобретения быстрая внешняя динамическая энергозависимая память, например, RAM, может использоваться в качестве рабочей памяти для операций кодирования и декодирования видео, к примеру, для кодирования по стандартам MPEG-2 часть 2 (также называемому Рекомендация Н.262 ITU-T и ISO/IEC 13818-2, также называемому MPEG-2 Video), HEVC (High Efficiency Video coding, «высокоэффективное видеокодирование»), VVC (Versatile Video Coding, «универсальное видеокодирование»), или стандарту MPEG-I часть 5 или часть 9.
Входные данные в элементы системы 300 могут подаваться при помощи различных устройств ввода, показанных в блоке 390. Такие устройства ввода включают, без ограничения перечисленным: (i) радиочастотный узел, который может принимать радиочастотный сигнал, передаваемый, например, по радиоинтерфейсу передатчиком, (ii) входной терминал композитного интерфейса, (iii) входной терминал USB и/или (iv) входной терминал HDMI.
В различных вариантах осуществления настоящего изобретения устройства ввода в блоке 390 могут иметь соответствующие связанные с ними элементы обработки входных данных, известные на существующем уровне техники. К примеру, радиочастотный узел может быть связан с элементами, необходимыми для следующего: (i) выбор необходимой частоты (это также называют селекцией сигнала или ограничением полосы частот до заданной полосы), (ii) преобразование выделенного сигнала с понижением частоты, (iii) повторное ограничение полосы частоты до более узкой для выделения (к примеру) полосы частот сигнала, которая может, в некоторых из вариантов осуществления настоящего изобретения, называться каналом, (iv) демодуляция преобразованного с понижением частоты и ограниченного по полосе частот сигнала, (v) выполнение исправления ошибок, и (vi) демультиплексирование для выделения требуемого потока пакетов данных. Радиочастотный узел в различных вариантах осуществления настоящего изобретения может включать один или более элементов для выполнения этих функций, к примеру, селекторы частоты, селекторы сигнала, ограничители полосы частот, селекторы канала, фильтры, понижающие преобразователи, демодуляторы, корректоры ошибок и демультиплексоры. Радиочастотный узел может включать тюнер, который выполняет некоторые из подобных функций, включая, например, понижающее преобразование принятого сигнала до пониженной частоты (к примеру, промежуточной частоты или до близкой к основной полосе частот) или до основной полосы частот.
В одном из вариантов осуществления настоящего изобретения, представляющем собой телеприставку, радиочастотный узел и связанный с ним элемент обработки входных данных может принимать радиочастотный сигнал, передаваемый по проводному (например, кабельному) носителю. В этом случае радиочастотный узел может выполнять селекцию частоты при помощи фильтрации, понижающего преобразования и повторной фильтрации до требуемой полосы частот.
В различных вариантах осуществления настоящего изобретения описанные выше (и другие) элементы могут иметь иной порядок, некоторые из элементов могут быть удалены, и/или могут быть добавлены другие элементы, выполняющие сходные или отличающиеся функции.
Добавление элементов может включать введение элементов между существующими, к примеру, введение усилителей и аналого-цифрового преобразователя. В различных вариантах осуществления настоящего изобретения радиочастотный узел может иметь антенну.
При этом упомянутые терминалы USB и/или HDMI могут содержать соответствующие интерфейсные процессоры для соединения системы 300 с другими электронными устройствами по соединениям USB и/или HDMI. Нужно понимать, что различные аспекты обработки входных данных, к примеру, коррекция ошибок с помощью кодов Рида-Соломона, могут быть реализованы при помощи отдельной интегральной схемы обработки ввода или при внутри процессора 310, в зависимости от требований. Аналогично, аспекты обработки интерфейсов USB или HDMI могут быть реализованы в отдельных интерфейсных интегральных схемах или внутри процессора 310 в зависимости от требований. Демодулированный, с исправленными ошибками и демультиплексированный поток может быть подан в различные обрабатывающие элементы, включающие, например, процессор 310 и кодер/декодер, функционирующие в сочетании с элементами памяти и хранения, для обработки потока данных, необходимой для отображения на устройстве вывода.
Различные элементы системы 300 могут быть выполнены в интегральном корпусе. Внутри интегрального корпуса различные элементы могут быть связаны друг с другом и могут передавать друг другу данные с использованием подходящего соединительного механизма 390, например, внутренней шины, известной на существующем уровне техники, включая шину I2C, проводные соединения и печатные платы.
Система 300 может включать интерфейс 350 связи, который обеспечивает возможность связи с другими устройствами по каналу 700 связи. Интерфейс 350 связи может включать, без ограничения перечисленным, приемопередатчик, сконфигурированный для передачи и приема данных по каналу 700 связи. Интерфейс 350 связи может включать, без ограничения перечисленным, модем или сетевую карту, при этом канал 700 связи может быть реализован, например, в проводной и/или беспроводной среде передачи.
Поток данных может передаваться в систему 300, в различных вариантах осуществления настоящего изобретения, с помощью сети Wi-Fi, например, по стандарту IEEE 802.11. Сигнал Wi-Fi в таких вариантах осуществления настоящего изобретения может приниматься по каналу 700 связи и интерфейсу 350 связи, которые приспособлены для связи по стандарту Wi-Fi. Канал 700 связи в таких вариантах осуществления настоящего изобретения, как правило, может быть связан с точкой доступа или маршрутизатором, который представляет доступ к внешним сетям, включая Интернет, давая возможность использовать стриминговые приложения и иную связь, поставляемую поверх сетевых услуг оператора связи (over-the-top, ОТТ).
В других вариантах осуществления настоящего изобретения, потоковая передача данных в систему 300 может осуществляться с помощью приставки, которая подает данные по HDMI соединению блока 390 ввода.
Также, в дополнительных вариантах осуществления настоящего изобретения, потоковая передача данных в систему 300 может осуществляться с помощью радиочастотного соединения блока 390 ввода.
Передаваемый поток данных может использоваться как путь сигнализации информации, используемой в системе 300. Сигнализируемая информация может включать битовый поток В и/или такую информацию как количество точек в облаке точек, координаты или порядковый индекс o(P1) первой точки в двумерной системе координат (,λ), и/или конфигурационные параметры измерений, например, элементарный азимутальный сдвиг или угол θk возвышения, относящийся к датчику в головке 10 лидара.
Нужно понимать, что сигнализация может выполняться множеством различных способов. К примеру, для сигнализации информации соответствующему декодеру в различных вариантах осуществления настоящего изобретения могут применяться один или более синтаксических элементов, флагов и т.п.
Система 300 может подавать выходной сигнал в различные устройства вывода, включая дисплей 400, динамики 500 и иные периферийные устройства 600. Упомянутые иные периферийные устройства 600 могут включать, в различных примерах осуществления настоящего изобретения, одно или более из следующего: автономный DVR, проигрыватель дисков, стереосистему, систему освещения, а также другие устройства, выполняющие свои функции на основе выходных данных системы 300.
В различных вариантах осуществления настоящего изобретения между системой 300 и дисплеем 400, динамиками 500 и иными периферийными устройствами 600 могут передаваться сигналы управления при помощи, например, такой сигнализации, как AV Link (Audio/Video Link, «аудио/видео линия»), СЕС (Consumer Electronics Control, «управление бытовой электроникой») или иных протоколов связи, обеспечивающих возможность управления между устройствами с вмешательством пользователя или без него.
Устройства вывода могут быть соединены с системой 300, с возможностью связи, по специальным соединениям через соответствующие интерфейсы 360, 370 и 380.
Альтернативно, устройства вывода могут быть соединены с системой 300 при помощи канала 700 связи через интерфейс 350 связи. Дисплей 400 и динамики 500 могут быть объединены в одном блоке с остальными компонентами системы 300 в составе электронного устройства, например, телевизора.
В различных вариантах осуществления настоящего изобретения дисплейный интерфейс 360 может включать драйвер дисплея, к примеру, микросхему тайминг-контроллера (Т Con).
Дисплей 400 и динамик 500, альтернативно, могут быть отдельными от одного или более других компонентов, к примеру, если радиочастотный узел блок 390 ввода является частью отдельной приставки. В тех вариантах осуществления настоящего изобретения, где дисплей 400 и динамики 500 являются внешними компонентами, выходной сигнал может подаваться по специальным выходным соединениям, включая, к примеру, порты HDMI, порты USB или порты СОМР.
На фиг. 1-12 показаны различные способы, описанные в данном документе, при этом каждый способ включает один или более шагов, или операций, для реализации описанного способа. Если конкретный порядок выполнения шагов или операций не является необходимым для корректного выполнения способа, то порядок и/или использование каких-либо шагов, или операций, могут быть изменены, или они могут комбинироваться.
Некоторые из примеров были проиллюстрированы на примерах блок-схем и/или блок-схем алгоритмов. Каждый такой блок может представлять собой схемный элемент, модуль или фрагмент кода, который включает одну или более исполняемых инструкций для реализации заданной логической функции (или функций). Следует отметить, что в некоторых альтернативных реализациях, функции, отмеченные в блоке, могут выполняться в порядке, отличающемся от проиллюстрированного на чертеже. К примеру, два блока, показанные в виде последовательности, фактически могут исполняться по существу одновременно, или же, в некоторых случаях, блоки могут исполняться в обратном порядке, - в зависимости от используемой функциональности.
Реализации и аспекты, описанные в данном документе, могут быть реализованы, к примеру, в форме способа или процедуры, устройства, компьютерной программы, потока данных, битового потока или сигнала. Даже если реализация описана только в контексте одной формы (к примеру, только как способ), описанные отличительные признаки могут быть также реализованы и в других формах (к примеру, устройства или компьютерной программы).
Способы могут быть также реализованы, например, в форме процессора, что в общем подразумевает устройства обработки данных, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Процессоры также включают устройства связи.
Также способы могут быть реализованы путем выполнения инструкций процессором, при этом такие инструкции (и/или значения данных, получаемые при выполнении) могут храниться на машиночитаемом носителе данных). Машиночитаемый носитель данных может иметь форму машиночитаемого программного продукта, воплощенного на одном или более машиночитаемых носителей и имеющего воплощенный на нем машиночитаемый программный код, который может исполняться компьютером. Под машиночитаемым носителем данных в настоящем документе понимают долговременный носитель данных, обладающий неотъемлемой способностью хранить в себе информацию, а также способностью обеспечивать извлечение информации из него. К примеру, машиночитаемый носитель данных может представлять собой, без ограничения перечисленным, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, оборудование или устройство, или же любую подходящую комбинацию перечисленного. Специалисты в данной области техники должны понимать, что перечисленное ниже, являясь конкретными примерами машиночитаемых носителей данных, в которых могут применяться варианты осуществления настоящего изобретения, является лишь иллюстративным и неисчерпывающим перечислением: портативная компьютерная дискета, жесткий диск, память "только для чтения" (ROM), перезаписываемая память "только для чтения" (erasable programmable read-only memory, EPROM) или Flash-память, портативная память "только для чтения" на компакт-диске (compact disc read-only memory, CD-ROM), оптическое запоминающее устройство, магнитное запоминающее устройство или любая комбинация перечисленного.
Инструкции могут образовывать прикладную программу, материально воплощенную на читаемом процессором носителе.
Инструкции могут, к примеру, иметь форму аппаратного обеспечения, микропрограммного обеспечения, программного обеспечения или их комбинации. Инструкции могут находиться, к примеру, в операционной системе, в отдельном приложении или в их комбинации. Процессор, соответственно, может быть определен, например, одновременно как устройство, сконфигурированное для выполнения процедуры, и как устройство, которое включает читаемый процессором носитель (например, запоминающее устройство) с инструкциями для выполнения процедуры. Также на читаемом процессором носителе, в дополнение к инструкциям или вместо них, могут храниться значения данных, получаемых в результате исполнения.
Устройство может быть реализовано, к примеру, в форме подходящего аппаратного, программного и микропрограммного обеспечения. Примеры таких устройств могут включать персональные компьютеры, портативные компьютеры, смартфоны, планшетные компьютеры, цифровые мультимедийные приставки, цифровые телеприемники, персональные системы видеозаписи, подключенные к Интернету бытовые приборы, подключенные к Интернету автомобили и их соответствующие системы обработки данных, устанавливаемые на голове дисплейные устройства или очки с прозрачными дисплеями (HMD), проекторы (мультимедийные), среды виртуальной реальности CAVE (системы со множеством дисплеев), серверы, видеокодеры, видеодекодеры, постпроцессоры, обрабатывающие выходные данные с видеодекодера, препроцессоры, подающие входные данные в видеокодер, веб-серверы, телеприставки или любые другие устройства для обработки облаков точек, видеоинформации, изображений или иные устройства связи. Очевидно, что такое оборудование может быть мобильным или даже установлено на подвижной транспортной платформе.
Компьютерное программное обеспечение может быть реализовано при помощи процессора 310 или при помощи аппаратного обеспечения, или с помощью комбинации программного и аппаратного обеспечения. В качестве неограничивающего примера, варианты осуществления настоящего изобретения могут быть также реализованы при помощи одной или боле интегральных схем. Память 320 может быть любого типа, подходящего к техническому окружению, и может быть реализована с помощью любой подходящей технологии хранения данных, к примеру, без ограничения перечисленным, оптических запоминающих устройств, магнитных запоминающих устройств, полупроводниковых запоминающих устройств, несъемной памяти или съемной памяти. Процессор 310 может быть любого типа, подходящего к техническому окружению, и может включать, без ограничения перечисленным, одно или более из следующего: микропроцессоры, компьютеры общего назначения, компьютеры специального назначения, а также процессоры, основанные на многоядерной архитектуре.
Специалистам в данной области техники должно быть очевидно, что реализации могут формировать множество различных сигналов, форматированных для содержания информации, которая, к примеру, может сохраниться или передаваться. Такая информация может включать, например, инструкции для выполнения способа или данные, получаемые в результате одной или более описанных реализаций. К примеру, некоторый сигнал может быть форматирован для содержания в нем битового потока в соответствии с одним из описанных вариантов осуществления настоящего изобретения. Такой сигнал может быть форматирован, например, в форме электромагнитной волны (к примеру, с использованием радиочастотной области спектра) или в форме сигнала основной полосы частот. Форматирование может включать, например, кодирование потока данных и модуляцию несущий кодированным потоком данных. Информация, которую содержит сигнал, может быть, например, аналоговой или цифровой информацией. Сигнал, как известно, может передаваться по множеству различных проводных или беспроводных линий связи. Сигнал может храниться на читаемом процессором носителе данных.
Конкретная терминология в настоящем документе используется исключительно для описания конкретных вариантов его осуществления и не имеет целью ограничение настоящего изобретения. В настоящем описании, а также в приложенной формуле изобретения, такие выражения, как «один», «один из» и «упомянутый» в единственном числе могут также подразумевать включение означаемых во множественном числе, если только из контекста очевидно не следует обратное. Нужно также понимать, что выражения «включает/содержит» и/или «включающий/содержащий» в данном документе определяют присутствие перечисленных признаков, подсистем, шагов, операций, элементов и/или компонентов, но не исключают присутствие или добавление одного или боле других признаков, подсистем, шагов, операций, элементов, компонентов и/или их групп. При этом, если элемент описан как «реагирующий» на другой элемент или «соединенный» с другим элементом, он может непосредственно реагировать или быть соединенным с этим другим элементом, или могут присутствовать промежуточные элементы. При этом, если элемент описан как «реагирующий» на другой элемент или «соединенный» с другим элементом, он может непосредственно реагировать или быть соединенным с этим другим элементом, или могут присутствовать промежуточные элементы.
Нужно понимать, что использование символа «/» или выражений «и/или» и «по меньшей мере одно из следующего», к примеру, в случае «А/В» «А и/или В» и «по меньшей мере одно из следующего: А и В» может подразумевать включение выбора только первой перечисленной опции (А) или выбор только второй перечисленной опции (В), или выбор обеих опций (А и В). В качестве еще одного примера, в случае: «А, В и/или С» и «по меньшей мере одно из следующего: А, В и С», такие выражения подразумевают включение выбора только первой перечисленной опции (А) или выбор только второй перечисленной опции (В), или выбор только третьей перечисленной опции (С), или выбор только первой и второй перечисленных опций (А и В), или выбор только первой и третьей перечисленных опций (А и С), или выбор только второй и третьей перечисленных опций (В и С), или выбор всех трех опций (А и В и С). Специалистам в данной области техники должно быть очевидно, что это может быть расширено на любое количество перечисленных элементов.
В настоящей заявки могут использоваться множество различных числовых значений. Эти конкретные значения могут приводиться в качестве примера, и аспекты, описанные в данном документе, не ограничены этими конкретными значениями.
Для описания различных элементов в данном документе могли быть использованы термины «первый», «второй» и т.п., однако нужно понимать, что такие элементы не ограничены этими терминами. Данные термины используются исключительно в целях различения одних элементов от других. К примеру, первый элемент может быть назван вторым элементом, и аналогично, второй элемент может быть назван первым элементом, в пределах сущности и объема настоящего изобретения. Между первым и вторым элементами не предполагается никакого порядка следования.
Упоминание «примера осуществления настоящего изобретения» или «одного из примеров осуществления настоящего изобретения», или «одной реализации», или «одной из реализаций», а также вариаций этих выражений, используются зачастую для сообщения о том, что некоторый отличительный признак, структура, характеристика и т.п.(описанные в связи с вариантом осуществления настоящего изобретения или реализацией) включены по меньшей мере в один из вариантов осуществления или реализацию настоящего изобретения. То есть, фразы «в одном примере осуществления настоящего изобретения» или «в одном из примеров осуществления настоящего изобретения», или «в одной реализации», или «в одной из реализаций», а также их вариаций, в различных местах настоящей заявки не обязательно отсылают к одному и тому же варианту осуществления настоящего изобретения.
Аналогично, в данном документе выражение «в соответствии с одним из вариантов/примеров/реализацией» или «в одном из вариантов/примере/реализации», а также их вариации, используют зачастую для сообщения о том, что некоторый отличительный признак, структура, характеристика и т.п. (описанные в связи с проиллюстрированным вариантом/примером/реализацией) могут входить в состав по меньшей мере одного проиллюстрированного варианта/примера/реализации настоящего изобретения. Таким образом, появление выражений «в соответствии с одним из вариантов/примеров/реализацией» или «в одном из вариантов/примере/реализации» в различных местах настоящего описания не обязательно обозначает отсылку к одному и тому же варианту/примеру/реализации, а также не означает, что отдельные или альтернативные варианты/примеры/реализации должны исключать друг друга или другие проиллюстрированные варианты/примеры/реализации.
Числовые обозначения, приведенные в формуле изобретения, использованы исключительно для иллюстрации и не ограничивают объем формулы изобретения. Варианты и примеры осуществления настоящего изобретения могут применяться в любых комбинациях или суб-комбинациях, даже если они явно не описаны в данном документе.
Если чертеж является блок-схемой алгоритма, нужно понимать, что он также представляет блок-схему соответствующего устройства. Аналогично, когда чертеж является блок-схемой устройства, нужно понимать, что он также представляет блок-схему алгоритма соответствующего способа или процедуры.
На некоторых из блок-схем имеются стрелки на каналах связи, иллюстрирующие основное направление связи, однако нужно понимать, что связь может осуществляться и в противоположном стрелкам направлении.
В различных реализациях применяют декодирование. «Декодирование» в настоящей заявке может включать все процедуры (или их часть), выполняемые, например, над принятым кадром облака точек (включая, возможно, принятый битовый поток, где кодированы один или более кадров облака точек) для получения окончательных выходных данных, подходящих для отображения или для дальнейшей обработки в области восстановленного облака точек. В различных вариантах осуществления настоящего изобретения такие процедуры включают одну или более процедур, обычно выполняемых декодером. В различных вариантах осуществления настоящего изобретения такие процедуры, в дополнение или альтернативно, могут включать процедуры, выполняемые декодером из различных реализаций, описанных в настоящей заявке.
В качестве дополнительных примеров, в одном из вариантов осуществления настоящего изобретения «декодирование» может означать только деквантование, в одном из вариантов осуществления настоящего изобретения «декодирование» может означать энтропийное декодирование, еще одном из вариантов осуществления настоящего изобретения «декодирование» может означать только дифференциальное декодирование, и в еще одном из вариантов осуществления настоящего изобретения «декодирование» может означать комбинации из деквантования, энтропийного декодирования и дифференциального декодирования. Означает ли выражение «процедура декодирования» конкретное подмножество операций или вообще процедуру декодирования в более широком смысле, ясно следует из контекста конкретного описания и будет понятно специалистам в данной области техники.
В различных реализациях применяют кодирование. Аналогично приведенным выше рассуждениям о «декодировании», «кодирование» в настоящей заявки может включать все процедуры (или их часть), выполняемые, например, над входным кадром облака точек для получения кодированного битового потока. В различных вариантах осуществления настоящего изобретения такие процедуры включают одну или более процедур, обычно выполняемых кодером. В различных вариантах осуществления настоящего изобретения такие процедуры, в дополнение или альтернативно, могут включать процедуры, выполняемые кодером из различных реализаций, описанных в настоящей заявке.
В качестве дополнительных примеров, в одном из вариантов осуществления настоящего изобретения «кодирование» может означать только квантование, в одном из вариантов осуществления настоящего изобретения «кодирование» может означать только энтропийное кодирование, в еще одном из вариантов осуществления настоящего изобретения «кодирование» может означать только дифференциальное кодирование, и в еще одном из вариантов осуществления настоящего изобретения «кодирование» может означать комбинации из квантования, дифференциального кодирования и энтропийного кодирования. Что именно означает выражение «процедура кодирования», конкретное подмножество операций или вообще процедуру кодирования в более широком смысле, ясно следует из контекста конкретного описания и будет понятно специалистам в данной области техники.
Также в данной заявке может упоминаться «определение» различных элементов информации. Определение информации может включать, например, одно или более из следующего: оценка информации, вычисление информации, предсказание информации или извлечение информации из памяти.
Также в данной заявке может упоминаться «доступ» к различным элементам информации. Доступ к информации может включать, к примеру, одно или более из следующего: прием информации, излечение информации (например, из памяти), сохранение информации, перемещение информации, копирование информации, вычисление информации, определение информации, предсказание информации или оценку информации.
Также, в данной заявке может упоминаться «прием» различных элементов информации. Прием, аналогично «доступу», следует понимать широко. Прием информации может включать, к примеру, одно или более из следующего: доступ к информации или излечение информации (например, из памяти). При этом прием выполняют, как правило, так или иначе, во время таких операций, как сохранение информации, обработка информации, передача информации, перемещение информации, копирование информации, стирание информации, вычисление информации, определение информации, предсказание информации или оценка информации.
Также, в данном документе термин «сигнализировать» обозначает, помимо прочего, указание о чем-то соответствующему декодеру. К примеру, в некоторых из вариантов осуществления настоящего изобретения кодер может сигнализировать некоторую информацию, такую как количество точек в облаке точек или координаты, или порядковый индекс, o(P1) первой точки в двумерной системе координат (φ,λ), или конфигурационные параметры измерений, такие как элементарный азимутальный сдвиг Δφ или угол возвышения θk, относящийся к датчику k. Таким образом, в одном из вариантов осуществления настоящего изобретения один и тот же параметр может использоваться и на стороне кодера, и на стороне декодера. То есть, например, кодер может передавать (сигнализировать в явном виде) конкретный параметр в декодер, в результате чего декодер может использовать этот конкретный параметр. И наоборот, если декодере уже имеется конкретный параметр, помимо прочего, то сигнализация может выполняться без передачи (явной сигнализации), просто чтобы уведомить декодер и выбрать конкретный параметр. Исключение передачи каких-либо фактических функций позволяет экономить биты в различных вариантах осуществления настоящего изобретения. Нужно понимать, что сигнализация может выполняться множеством различных способов. К примеру, для сигнализации информации соответствующему декодеру в различных вариантах осуществления настоящего изобретения могут применяться один или более синтаксических элементов, флагов и т.п. Предшествующее относится к глагольной форме «сигнализировать», однако «сигнализация» может также использоваться в данном документе как существительное.
Было рассмотрено несколько конкретных вариантов реализации настоящего изобретения. Однако нужно понимать, что в них могут быть выполнены множество различных модификаций. К примеру, элементы различных реализаций могут комбинироваться, дополняться, модифицироваться или удаляться, в результате чего могут быть получены другие реализации. При этом специалисты в данной области техники должны понимать, что вместо рассмотренных здесь могут применяться другие структуры или процедуры, и результирующие реализации будут выполнять по существу ту же функцию (или функции), по существу тем же методом (или методами), с получением по существу того же результата (или результатов), что и описанные реализации. Соответственно, подобные, а также другие реализации, попадают в объем настоящей заявки.

Claims (25)

1. Способ кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект, при этом каждая точка в облаке точек ассоциирована со сферическими координатами, представляющими азимутальный угол, соответствующий углу захвата датчика, захватившего точку, и радиус, соответствующий расстоянию до точки от начала координат, при этом способ включает:
адаптивное квантование остаточной ошибки азимутального угла, вычисленной на основе азимутального угла, в зависимости от радиуса;
сигнализацию квантованной остаточной ошибки азимутального угла в битовом потоке для информирования декодера о режиме декодирования битового потока; и
передачу битового потока.
2. Способ по п. 1, в котором радиус адаптивно квантуют на основе предсказания азимутального угла, при этом азимутальный угол адаптивно квантуют на основе восстановленного радиуса, полученного с помощью обратного адаптивного квантования адаптивно квантованного радиуса.
3. Способ декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, при этом каждая точка в облаке точек ассоциирована со сферическими координатами, представляющими азимутальный угол, соответствующий углу захвата датчика, захватившего точку, и радиус, соответствующий расстоянию до точки от начала координат, при этом квантованную остаточную ошибку азимутального угла сигнализируют в битовом потоке, и способ включает:
обратное адаптивное квантование квантованной остаточной ошибки азимутального угла в зависимости от радиуса; и
декодирование битового потока на основе остаточной ошибки азимутального угла.
4. Способ по п. 3, в котором обратное адаптивное квантование остаточной ошибки азимутального угла основано на длине дуги шага квантования.
5. Способ по п. 3, в котором обратное адаптивное квантование квантованной остаточной ошибки азимутального угла включает первое умножение на радиус и второе умножение на 2π, при этом второе умножение на 2π аппроксимируют операциями, имеющими результат, эквивалентный умножению на 8.
6. Способ по п. 3, в котором радиус обратно адаптивно квантуют на основе предсказания азимутального угла, а азимутальный угол обратно адаптивно квантуют на основе восстановленного радиуса, полученного с помощью обратного адаптивного квантования адаптивно квантованной остаточной ошибки радиуса.
7. Способ по п. 6, в котором для обратного адаптивного квантования радиуса используют шаг Δr2D квантования, заданный следующим выражением:
где - предсказание азимутального угла , a - математическая функция, имеющая в качестве параметра;
при этом для обратного адаптивного квантования остаточной ошибки азимутального угла используют шаг квантования, заданный следующим выражением:
где r2Drec - восстановленный радиус.
8. Способ по п. 7, в котором математическая функция зависит от величины и задана следующим выражением:
9. Способ по п. 7, в котором математическая функция задана следующим выражением:
10. Устройство для кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект, при этом каждая точка в облаке точек ассоциирована со сферическими координатами, представляющими азимутальный угол, соответствующий углу захвата датчика, захватившего точку, и радиус, соответствующий расстоянию до точки от начала координат, при этом устройство включает один или более процессоров, сконфигурированных для адаптивного квантования остаточной ошибки азимутального угла, вычисленной на основе азимутального угла, в зависимости от радиуса, сигнализации квантованной остаточной ошибки азимутального угла в битовом потоке для информирования декодера о режиме декодирования битового потока и передачи битового потока.
11. Устройство для декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, при этом каждая точка в облаке точек ассоциирована со сферическими координатами, представляющими азимутальный угол, соответствующий углу захвата датчика, захватившего точку, и радиус, соответствующий расстоянию до точки от начала координат, при этом квантованную остаточную ошибку азимутального угла сигнализируют в битовом потоке, и устройство включает один или более процессоров, сконфигурированных для обратного адаптивного квантования квантованной остаточной ошибки азимутального угла в зависимости от радиуса и для декодирования битового потока на основе остаточной ошибки азимутального угла.
12. Носитель данных, содержащий инструкции программного кода для выполнения способа кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект, при этом каждая точка в облаке точек ассоциирована со сферическими координатами, представляющими азимутальный угол, соответствующий углу захвата датчика, захватившего точку, и радиус, соответствующий расстоянию до точки от начала координат, при этом способ включает адаптивное квантование остаточной ошибки азимутального угла, вычисленной на основе азимутального угла, в зависимости от радиуса, сигнализацию квантованной остаточной ошибки азимутального угла в битовом потоке для информирования декодера о режиме декодирования битового потока и передачу битового потока.
13. Носитель данных, содержащий инструкции программного кода для выполнения способа декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, при этом каждая точка в облаке точек ассоциирована со сферическими координатами, представляющими азимутальный угол, соответствующий углу захвата датчика, захватившего точку, и радиус, соответствующий расстоянию до точки от начала координат, при этом квантованную остаточную ошибку азимутального угла сигнализируют в битовом потоке, и способ включает обратное адаптивное квантование квантованной остаточной ошибки азимутального угла и декодирование битового потока на основе остаточной ошибки азимутального угла.
RU2023118276A 2020-12-23 2021-10-14 Способ и устройство квантования сферических координат, используемых для кодирования/декодирования данных геометрии облака точек RU2818299C1 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP20306674.1 2020-12-23

Publications (1)

Publication Number Publication Date
RU2818299C1 true RU2818299C1 (ru) 2024-05-02

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2433562C2 (ru) * 2006-03-30 2011-11-10 Кабусики Кайся Тосиба Устройство и способ кодирования изображений и устройство и способ декодирования изображений
US20170347120A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
US20200153885A1 (en) * 2018-10-01 2020-05-14 Lg Electronics Inc. Apparatus for transmitting point cloud data, a method for transmitting point cloud data, an apparatus for receiving point cloud data and/or a method for receiving point cloud data
CN111699683A (zh) * 2019-06-13 2020-09-22 深圳市大疆创新科技有限公司 一种点云编码方法、点云解码方法及相关设备
WO2020248177A1 (zh) * 2019-06-12 2020-12-17 浙江大学 点云的编解码方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2433562C2 (ru) * 2006-03-30 2011-11-10 Кабусики Кайся Тосиба Устройство и способ кодирования изображений и устройство и способ декодирования изображений
US20170347120A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
US20200153885A1 (en) * 2018-10-01 2020-05-14 Lg Electronics Inc. Apparatus for transmitting point cloud data, a method for transmitting point cloud data, an apparatus for receiving point cloud data and/or a method for receiving point cloud data
WO2020248177A1 (zh) * 2019-06-12 2020-12-17 浙江大学 点云的编解码方法及装置
CN111699683A (zh) * 2019-06-13 2020-09-22 深圳市大疆创新科技有限公司 一种点云编码方法、点云解码方法及相关设备

Similar Documents

Publication Publication Date Title
JP2023554158A (ja) 自己回転センサヘッドによってキャプチャされた点群ジオメトリデータをエントロピー符号化/復号化する方法及び装置
WO2022213568A1 (en) Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head
RU2818299C1 (ru) Способ и устройство квантования сферических координат, используемых для кодирования/декодирования данных геометрии облака точек
WO2022134761A1 (en) Method and apparatus of quantizing spherical coorinates used for encoding/decoding point cloud geometry data
RU2815072C1 (ru) Способ и устройство для энтропийного кодирования/декодирования данных геометрии облака точек, захваченных вращающейся головкой датчиков
EP4020816A1 (en) Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head
EP4071719A1 (en) Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head
WO2022213569A1 (en) Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head
US20240185472A1 (en) Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head
EP4113441A1 (en) Method and apparatus of encoding/decoding point cloud captured by a spinning sensors head
US20240185466A1 (en) Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head
RU2818834C2 (ru) Способ и устройство кодирования/декодирования геометрических данных облака точек с использованием режима азимутального кодирования
EP4071717A1 (en) Method of encoding point cloud geometry data captured by a spinning sensors head
WO2023123261A1 (en) Method and apparatus of encoding/decoding point cloud geometry data
US20240187631A1 (en) Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head
EP4142290A1 (en) Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
CN117957570A (zh) 对由至少一个传感器感测到的点云几何数据进行编码/解码的方法和装置
CN117957572A (zh) 对由至少一个传感器感测到的点云几何数据进行编码/解码的方法和装置
CN118120237A (zh) 编码/解码由至少一个传感器感测的点云几何数据的方法和装置
CN117693769A (zh) 编码/解码由旋转传感器头捕获的点云的方法和装置
CN118077205A (zh) 对由至少一个传感器感测到的点云几何数据进行编码/解码的方法和装置
CN118043849A (zh) 编码/解码由至少一个传感器感测的点云几何数据的方法和装置