Ссылка на связанную заявку
Настоящая заявка ссылается на приоритет заявки на Европейский патент №21305920.7, зарегистрированной 2 июля 2021 года. При этом содержимое упомянутой заявки полностью включено в настоящий документ путем ссылки.
Область техники
Настоящая заявка относится, в общем, к сжатию облака точек, а именно к способам и устройству для кодирования/декодирования местоположений и атрибутов точек в облаке точек, захваченном при помощи вращающейся измерительной головки.
Предпосылки создания изобретения
Данный раздел представляет различные аспекты текущего уровня развития техники, которые могут иметь отношение к различным аспектам по меньшей мере одного из примеров осуществления настоящего изобретения, описанных ниже и/или в приложенной формуле изобретения. Данное описание призвано сообщить читателю вводную информацию, облегчающую понимание различных аспектов настоящего изобретения.
В последнее время, в качестве одного из форматов представления трехмерных данных, облака точек приобретают все большую популярность благодаря их универсальности и способности представлять любые типы физических объектов и сцен. Облака точек могут применяться для различных задач, например, для объектов культурного наследия или зданий: статуи или здания сканируют и получают их трехмерное представление, позволяющее удаленно воспринимать пространственную конфигурацию объектов без их пересылки или посещения. Также это может быть одним из способов сохранения знаний об объектах в случае их физического уничтожения, например, храма, который может быть уничтожен землетрясением. Подобные облака точек являются, как правило, статическими, имеют цветовую информацию и огромны по объему.
Еще одним сценарием применения облаков точек может быть топография и картография, когда трехмерное представление позволяет карте не быть ограниченной плоскостью и включать также рельеф. Хорошим примеров трехмерной карты является сервис Google Maps, однако в нем применяются сетки, а не облака точек. Тем не менее, облака точек подходят для применения в трехмерных картах, и такие облака точек являются, как правило, статическими, включают цветовую информацию и огромны по объему.
Виртуальная реальность (Virtual Reality, VR), дополненная реальность (Augmented Reality, AR) и технологии иммерсивного опыта в последнее время стали широко обсуждаемыми темами. Ожидается, что такие технологии придут на смену двумерному плоскому видео. Основная идея их заключается в погружении зрителя в окружающую среду, в отличие от обычного телевизора, дающего пользователям возможность лишь заглянуть в виртуальный мир, расположенный перед ними. Существуют различные степени иммерсивности, в зависимости от степеней свободы зрителя в окружении. Формат облаков точек являются многообещающим кандидатом для распространения VR/AR миров.
Еще одной сферой интенсивного применения облаков точек может быть автомобильная промышленность, а именно, беспилотные автомобили. Беспилотные автомобили должны уметь «зондировать» их окружение, чтобы принимать корректные решения при вождении на основе обнаруженного присутствия объектов, а также характера этих объектов и конфигурации дороги.
Облако точек представляет собой множество точек, расположенных в трехмерном (3D) пространстве. Опционально, к каждой из точек могут быть привязаны дополнительные значения. Такие дополнительные значения, как правило, называют атрибутами. Атрибутами могут быть, например, трехкомпонентный цвет, свойства материала, такие как отражающая способность, и/или двухкомпонентные векторы нормали, относящиеся к точке.
Облако точек, таким образом, представляет собой сочетание геометрии (местоположений точек в трехмерном пространстве, задаваемых, как правило, декартовыми координатами x, у и z) и по меньшей мере одного атрибута.
Облака точек могут формироваться при помощи устройств различных типов, например, массивов камер, датчиков глубины, лазеров (регистрирующих свет и измеряющих расстояния, также называемых лидарами), радарами, или могут формироваться при помощи компьютера (например, в послесъемочной обработке фильмов). В зависимости от сценария применения облака точек могут иметь от тысяч до миллиардов точек, в случае применения в картографии. В сыром, «необработанном», виде облака точек требуют очень большого количества бит на каждую точку, по меньшей мере 12 битов на каждую декартову координату x, у и 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 облако сжимают точек путем выполнения множества проекций трехмерного объекта с получением двумерных участков (patches), которые упаковывают в изображение (или видео, при работе с динамическими облаками точек). Полученные изображения или видео затем сжимают с помощью существующих кодеков изображений/видео, что позволяет применять уже развернутые решения для работы с изображениями и видео. По своей природе технология V-PCC эффективна только для плотных и непрерывных облаков точек, поскольку кодеки изображений/видео не способны сжимать негладкие участки, которые могут возникать, например, в результате проецирования зарегистрированных лидаром данных с рассеянной геометрией.
Технология кодирования G-PCC имеет две схемы сжатия захваченных геометрических данных.
Первая схема основана на дереве занятости, которое может быть, локально, любым из следующих типов, представляющих геометрию облака точек: октадеревом, квадродеревом или бинарным деревом. Занятые узлы разбивают на подветви до тех пор, пока не будет достигнут заданный размер, и занятые листы дерева содержат местоположения точек в трехмерном пространстве, как правило, в центре этих узлов. Информацию о занятости передают при помощи флагов занятости, сигнализирующих о состоянии занятости каждого из дочерних узлов любого узла. С помощью методов предсказания на основе соседей в случае плотных облаков точек может быть достигнут высокий уровень сжатия флагов занятости. Рассеянные облака точек также могут быть обработаны, при помощи непосредственного кодирования положения точки в узле с не минимальным размером, и остановки построения дерева, когда в узлах находятся только изолированные точки; такой метод называют методом прямого кодирования (Direct Coding Mode, DCM).
Вторая схема основана на дереве предсказания, в котором каждый узел представляет собой местоположение точки в трехмерном пространстве, а отношения родитель/потомок между узлами представляет собой пространственное предсказание от родителя к потомку. Такой метод подходит только для рассеянных облаков точек и выгодно отличается низкими задержками и более простым декодированием, по сравнению с деревом занятости. Однако достижимая эффективность сжатия лишь незначительно выше при сложном, по сравнению с методом на основе занятости, кодировании, поскольку при построении дерева предсказаний кодеру необходимо выполнять тщательный поиск наилучшего предсказания (по длинному списку потенциальных предсказаний).
В обеих схемах (де)кодирование атрибутов выполняют после полного (де)кодирования геометрии, что практически означает кодирование в два прохода. Таким образом, низкая латентность для комбинации геометрии и атрибутов может быть достигнута за счет применения слайсов, разбивающих трехмерное пространство на независимо кодируемые частичные объемы, без предсказания между частичными объемами. Это может оказывать сильное негативное влияние на эффективность сжатия, если количество используемых слайсов велико.
В существующих кодеках облаков точек до сих пор не удавалось решить задачу совмещения требований к простоте кодера и декодера, низких задержек и эффективности сжатия.
Одним из важных сценариев применения является передача рассеянных геометрических данных, захваченных вращающейся измерительной головкой, например, вращающейся лидарной головкой, установленной на движущемся автомобиле. Как правило, это требует наличия на борту автомобиля простого кодера с низкими задержками. Простота необходима, поскольку кодер, вероятно, будет развернут на вычислительных блоках, которые параллельно выполняют обработку и других данных, например, при (частично) беспилотном вождении, что ограничивает вычислительную мощность, доступную для кодера облаков точек. Низкие задержки при этом требуются для обеспечения быстрой передачи из автомобиля в облачную среду для наблюдения за дорожным движением в реальном времени, основанном на данных, получаемых от множества автомобилей, чтобы принимать быстрые и адекватные решения на основе информации о движении. Задержки при передаче могут быть достаточно малыми при использовании технологии 5G, соответственно, сам кодер не должен вносить слишком большие задержи при кодировании. Эффективность сжатия также является крайней важной, поскольку поток данных от миллионов автомобилей, передаваемый в облачное окружение, может иметь огромный объем.
Некоторые из уже существующих технологий, относящиеся к рассеянным геометрическим данным, захваченным при помощи вращающейся измерительной головки, были применены и позволили получить высокоэффективные способы кодирования/декодирования.
К примеру, в технологии G-PCC применяют угол возвышения (относительно горизонтальной поверхности земли) для захвата вращающейся измерительной головкой, в соответствии с иллюстрацией фиг. 1 и фиг. 2. Вращающаяся измерительная головка 10 содержит набор датчиков 11 (например, лазеры), причем в данном примере показаны пять датчиков. Вращающаяся измерительная головка 10 может вращаться вокруг вертикальной оси z для захвата геометрических данных физических объектов, т.е. местоположений точек облака точек в трехмерном пространстве. Захваченные вращающейся измерительной головкой геометрические данные затем представляют в сферических координатах (r3D, φ, θ), где r3D - расстояние от точки Р до центра вращающейся измерительной головки, φ - азимутальный угол поворота головки относительно начала координат, а θ - угол возвышения датчика с порядковым номером к во вращающейся измерительной головке относительно опорной горизонтальной плоскости (в данном случае, оси у). Порядковый номер k угла возвышения может быть относительным, например, углом возвышения датчика k, или k-м положением датчика, если единственный датчик последовательно проводит измерения для каждого из последовательных углов возвышения. На фиг. 3 показано равномерное распределение по азимутальному углу, наблюдаемое в геометрических данных, захваченных вращающейся измерительной головкой. Упомянутая равномерность используется в методе G-PCC для получения квази-одномерного представления облака точек, в котором, с точностью до шума, только радиус r3D принадлежит непрерывному диапазону значений, тогда как углы φ и θ принимают только набор дискретных значений φi до I-1, где I - количество азимутальных углов, используемых для захвата точек, и θk
до K-1, где K - количество датчиков во вращающейся измерительной головке 10. Фактически, в технологии G-PCC рассеянные геометрические данные, захваченные вращающейся измерительной головкой, представляют на двумерной плоскости дискретных углов (φ, θ), в соответствии с иллюстрацией фиг. 3, вместе со значением радиуса r3D для каждой точки. Это свойство квази-одномерности используют в G-PCC, и в дереве занятости, и в дереве предсказания, при помощи предсказания, в пространстве сферических координат, местоположения текущей точки на основе уже кодированной точки, с использованием дискретного характера углов. А именно, в дереве занятости интенсивно применяют DCM и энтропийно кодируют непосредственные местоположения точек в узле с помощью контекстно-адаптивного энтропийного кодера. Контексты затем получают за счет локального преобразования местоположений точек в угловые координаты (φ, θ) и на основе местоположения этих угловых координат относительно дискретных угловых координат (φi, θk), полученных из ранее кодированных точек. В дереве предсказания непосредственно кодируют первую версию местоположения текущей точки Р в сферических координатах (r, φ, θ), где r - проекция радиуса на горизонтальную плоскость xy, показанная на фиг. 4 как r2D, с использованием квази-одномерного характера (r, φi, θk) этого координатного пространства. Затем сферические координаты (r, φ, θ) преобразуют в трехмерные декартовы координаты (x, у, z), и ошибку xyz кодируют для компенсации погрешностей при преобразовании координат, аппроксимации угла возвышения и азимутального угла, а также возможного шума. Сначала декартовы координаты (x, у, z) точек в облаке точек преобразуют в сферические координаты (r, φ, θ) при помощи (r, φ, θ)=С2А(x, у, z). Функция преобразования С2А() частично определена следующим образом:
r=round(sqrt(x*x+у*у)/ΔIr)
φ=round(atan2(y, х)/ΔIφ)
где round() - операция округления до ближайшего целого, sqrt() - функция извлечения квадратного корня, и atan2(y, х) - функция арктангенса, взятая от у/х.
ΔIr и ΔIφ - внутренние точности радиусов и азимутальных углов соответственно. Они как правило равны их соответствующим шагам квантования, т.е. ΔIφ=Δφ и ΔIr=Δr, где
и
где М и N - два параметра кодека, которые могут быть сигнализирован в битовом потоке в составе набора параметров геометрии, и где элементарный шаг квантования, как правило, равен 1. Как правило, N может быть равно 17, а М может быть равно 0 в случае сжатия без потерь.
Кодер может вычислять Δφ и Δr за счет минимизации затрат (например, количества битов) на кодирование представления в сферических координатах и ошибки xyz в декартовом пространстве.
Для простоты далее будем считать Δφ=ΔIφ и Δr=ΔIr.
Также для простоты в дальнейшем описании θ будем использовать в качестве значения угла возвышения, например, полученного при помощи следующего выражения:
где atan() - функция арктангенса. Однако в G-PCC, например, θ является целым значением, представляющим индекс k угла возвышения θk (т.е. порядковый номер k-го угла возвышения), поэтому описанные ниже операции (предсказание, (де)кодирование остатка и т.п.), выполняемые над θ, могут применяться к индексу угла возвышения. Специалистам в области сжатия облаков точек должны быть очевидны преимущества использования индекса к и каким образом индекс к угла возвышения может использоваться вместо θ. Также специалистам в области сжатия облаков точек должны быть очевидно, что эта деталь не влияет на сущность предложенного изобретения.
Остаток (ошибку) сферических координат (rres, φres, θres) между сферическими координатами (r, φ, θ) и предсказанными сферическими координатами, полученными на основе предиктора PRn, затем получают следующим образом:
(rres, φres, θres)=(r, φ, θ)-(rpred, φpred, θpred)=(r, φ, θ)-(rn, φn, θn)-(0, m*φstep, 0)
где (rn, φn, θn) - предсказанный радиус, предсказанный азимутальный угол и предсказанный угол возвышения, полученные на основе предсказания, которое было выбрано из списка кандидатных предсказаний PR0, PR1, PR2 и PR3, a m - целое количество элементарных шагов азимутального угла, добавляемое к предсказанию азимутального угла.
Элементарный шаг азимутального угла, φstep, кодер может вычислять на основе частоты и скорости вращения, с которыми вращающаяся измерительная головка выполняет захват на разных углах возвышения, к примеру, на основе количества измерений на каждый оборот головки, NP.
Элементарный шаг азимутального угла, φstep, или количество измерений на каждый оборот головки, NP, кодируют в битовый поток В, например, в наборе параметров геометрии. Альтернативно, NP может быть параметром кодека, который может сигнализироваться в битовом потоке, a φstep могут одинаковым образом вычисляться в кодере и декодере.
Остаток (rres, φres, θres) сферических координат может кодироваться в битовый поток в.
Остаток (rres, φres, θres) сферических координат может квантоваться (Q), с получением квантованного остатка Q(rres, φres, θres) сферических координат. Квантованный остаток Q(rres, φres, θres) сферических координат может кодироваться в битовый поток В.
Индекс (порядковый номер) п предсказания и число m сигнализируют в битовом потоке В для каждого узла дерева предсказания, тогда как элементарный шаг азимутального угла, φstep, заданный в виде числа с фиксированной точкой, является общим для всех узлов одного дерева предсказания.
Индекс n предсказания указывает на предсказание, выбранное из списка кандидатных предсказаний.
Кандидатное предсказание PR0 может быть равно (rmin, φ0, θ0), где rmin - минимальное значение радиуса (заданное в наборе параметров геометрии), а φ0 и θ0 равны 0, если текущий узел (текущая точка Р) не имеет родительского узла, или его азимутальный угол и угол возвышения равны углам точки, соответствующей родительскому узлу.
Второе кандидатное предсказание PR1 может быть равно (r0, φ0, θ0), где r0, φ0 и θ0, соответственно, - радиус, азимутальный угол и угол возвышения точки, соответствующей родительскому узлу для текущего узла.
Еще одно кандидатное предсказание PR2 может быть равно линейному предсказанию радиуса, азимутального угла и угла возвышения с использованием радиуса, азимутального угла и угла возвышения, (r0, φ0, θ0), точки, соответствующей родительскому узлу для текущего узла, и радиуса, азимутального угла и угла возвышения, (r1, φ1, θ1), относящегося к прародительскому узлу.
К примеру, PR2=2*(r0, φ0, θ0)-(r1, φ1, θ1).
Еще одно кандидатное предсказание PR3 может быть равно линейному предсказанию радиуса, азимутального угла и угла возвышения с использованием радиуса, азимутального угла и угла возвышения, (r0, φ0, θ0), точки, соответствующей родительскому узлу для текущего узла, радиуса, азимутального угла и угла возвышения, (r1, φ1, θ1), относящегося к прародительскому узлу, и радиуса, азимутального угла и угла возвышения (r2, φ2, θ2) точки, относящейся к пра-прародительскому узлу.
К примеру, PR3=(r0, φ0, θ0)+(r1, φ1, θ1)-(r2, φ2, θ2)
Предсказанные декартовы координаты (xpred, ypred, zpred) получают обратным преобразованием восстановленных сферических координат (rdec, φdec, θdec) следующим образом:
где декодированные сферические координаты (rdec, φdec, θdec), в случае декодера, могут быть заданы следующим образом:
где (rres, dec, φres, dec, θres, dec) - декодированная ошибка сферических координат, в случае декодера.
Декодированный остаток сферических координат, (rres, dec, φres, dec, θres, dec) может быть результатом обратного квантования (IQ) квантованного остатка сферических координат, Q(rres, φres, θres).
В G-PCC не выполняют квантования остатка сферических координат, и декодированные сферические координаты (rres, dec, φres, dec, θres, dec) равны остатку (rres, φres, θres) сферических координат. Декодированные сферические координаты (rdec, φdec, θdec) в этом случае равны сферическим координатам (r, φ, θ).
Обратное преобразование декодированных сферических координат (rdec, φdec, θdec) может быть определено следующим образом:
где sin() и cos() - функции синуса и косинуса. Эти две функции могут быть аппроксимированы операциями, работающими со значениями с фиксированной точкой. Значения tan(θdec) могут также храниться в виде значений с фиксированной точкой. Следовательно, в декодере операции с плавающей точкой не используются. Исключение операций с плавающей точкой, как правило, необходимо для упрощения аппаратной реализации кодеков.
Ошибку (остаток) (xres, yres, zres) декартовых координат между исходными точками и предсказанными декартовыми координатами (xpred, ypred, zpred) определяют следующим образом:
(xres, yres, zres)=(x, у, z)-(xpred, ypred, zpred)
Ошибку (xres, yres, zres) декартовых координат квантуют (Q), и квантованную ошибку Q(xres, yres, zres) декартовых координат кодируют в битовый поток.
Ошибка декартовых координат может кодироваться без потерь, когда шаги квантования x, у, z равны точности исходных точек (как правило, 1), или кодироваться с потерями, когда шаги квантования больше, чем точность исходных точек (как правило, шаги квантования больше 1).
Декодированные декартовы координаты (xdec, ydec, zdec) в декодере определяют следующим образом:
где IQ(Q(xres, yres, zres)) - обратно квантованная ошибка декартовых координат.
Эти декодированные декартовы координаты (xdec, ydec, zdec) могут использоваться в кодере, например, для упорядочивания (декодированных) точек перед кодированием атрибутов.
На фиг. 6 показан декодер облака точек, который аналогичен декодеру G-PCC, основанному на дереве предсказания.
Индекс (порядковый номер) n предсказания и число m получают из битового потока В для каждого узла дерева предсказания, и элементарный шаг азимутального угла, φstep, или количество измерений на оборот головки, NP, получают из битового потока, например, из набора параметров, и он является общим для всех узлов одного дерева предсказания.
Декодированная ошибка (rres, dec, φres, dec, θres, dec) сферических координат может быть получена декодированием ошибки (rres, φres, θres) сферических координат из битового потока В.
Квантованный остаток сферических координат, Q(rres, φres, θres), может быть декодирован из битового потока В. Квантованные остаток Q(rres, φres, θres) сферических координат обратно квантуют для получения декодированного остатка (rres, dec, φres, dec, θres, dec) сферических координат.
Декодированные сферические координаты (rdec, φdec, θdec) получают сложением декодированного остатка сферических координат (rres, dec, φres, dec, θres, dec) и предсказанных сферических координат (rpred, φpred, θpred) в соответствии с уравнением (4).
Предсказанные декартовы координаты (xpred, ypred, zpred) получают обратным преобразованием восстановленных сферических координат (rdec, φdec, θdec) в соответствии с уравнением (3).
Квантованную ошибку Q(xres, yres, zres) декартовых координат декодируют из битового потока В и обратно квантуют, получая обратно квантованные декартовы координаты IQ(Q(xres, yres, zres)). Декодированные декартовы координаты (xdec, ydec, zdec) заданы уравнением (5).
Атрибуты точек могут кодироваться на основе кодированных декартовых координат точек, чтобы обеспечить декорреляцию атрибутной информации согласно пространственным соотношениям, или расстоянию, между точками.
В стандарте G-PCC имеются два основных метода декорреляции и кодирования атрибутов точек: первый называют областно-адаптивным иерархическим преобразованием (Region Adaptive Hierarchical Transform, RAHT), а второй - методом предсказания LoD.
В методе RAHT применяют преобразование с множественным разрешением для кодирования атрибутов точек. От низкого разрешения до высокого разрешения, метод RAHT обеспечивает успешное кодирование преобразованных значений атрибутов в поддиапазонах следующей ступени разрешения. На основе декодированных координат точек, на каждом уровне декомпозиции, выполняют декомпозицию с множественным разрешением, от последней кодированной до первой кодированной - с двукратным понижением разрешения в каждом измерении, в результате чего каждое из разрешений соответствует кодированным атрибутам для местоположения занятости в одном из уровней октадерева геометрии (за более подробным описанием следует обратиться к описанию кодека G-PCC в документе N0057 от января 2021 года, доступному по следующей ссылке: https://www.mpegstandards.org/standards/MPEG-I/9/).
Метод предсказания LoD может применяться для получения представления с множественным разрешением особого типа, в котором количество уровней декомпозиции (т.е. количество уровней детализации) может быть параметризовано. Каждый уровень детализации получают при помощи детерминированного метода с выбором подмножества точек в зависимости от их кодированных координат. Метод предсказания LoD позволяет получить представление точек с пониженным разрешением между уровнями. При использовании метода декорреляции на основе преобразования с предсказанием предсказание значения атрибута (трехканального/трехкомпонентного цвета, или, например, одноканальной/одпокомпонентной отражающей способности) текущей декодируемой точки выполняют с помощью взвешенного предсказания на основе значений атрибутов k ближайших соседей, выбранных из заданного количества последних точек в этом же уровне, для которых значения атрибутов были декодированы, и/или на основе точек из родительских уровней (точек, принадлежащих ранее декодированным уровням). Число k указывают в битовом потоке (в наборе параметров атрибутов), а веса при взвешенном предсказании определяют в зависимости от расстояния между координатами (декартовыми или сферическими, в зависимости от конфигурации) текущей точки и координатами каждой из ближайших ее соседей. Ближайшие соседи ограничены принадлежностью заданному окну поиска, чтобы ограничить сложность метода предсказания LoD. За более подробным описанием метода следует обратиться к описанию кодека G-PCC в документе N0057 от января 2021 (доступен по следующей ссылке: https://www.mpegstandards.org/standards/MPEG-I/9/).
Метод предсказания LoD иногда также называют преобразованием лифтинга (lifting), поскольку в нем применяют тот же механизм, что и в описанном выше преобразовании с предсказанием, и вводят дополнительный шаг лифтинга между каждым из уровней декомпозиции, чтобы получить большее уплотнение энергии в представлениях с наименьшими разрешениями (т.е. в первых уровнях LoD), а также повышенную эффективность при сжатии атрибутов с потерями.
Наблюдения показали, что для облака точек, захваченного вращающейся измерительной головкой, кодирование атрибутов более эффективно при использовании для кодирования, вместо декартовых координат, сферических координат (r, φ, θ), либо полученных непосредственно при помощи кодирования на основе дерева предсказаний (т.е. декодированных сферических координат), либо полученных (т.е. вычисленных) на основе декодированных декартовых координат, когда используют октадерево геометрии.
Сферические координаты (r, φ, θ) не всегда могут быть представлены величинами сравнимых порядков: радиус r имеет величину, связанную с координатами x, у и параметрами квантования, азимутальный угол φ имеет величину, связанную с предсказанием азимутального угла, используемым в кодеке, а величина θ угла возвышения связана с индексом k-го угла возвышения (который может быть малой величиной по сравнению с двумя другими координатами). Поэтому для усовершенствования кодирования атрибутов сферические координаты (r, φ, θ) перед кодированием атрибутов могут быть масштабированы с использованием коэффициентов масштабирования, сигнализируемых в битовом потоке.
В кодеке G-PCC для каждой из трех сферических координат ck (с0=r, c1=φ, и с2=θ) кодируют один коэффициент масштабирования. Каждый коэффициент масштабирования кодируют с помощью пятибитного префиксного значения и суффиксного значения. Целое значение без знака для префикса (от 0 до 31) плюс 1 (от 1 до 32) указывает на количество бит суффикса. Суффикс представляет собой целое значение sk без знака, соответствующее 8-битному представлению с фиксированной точкой коэффициента масштабирования, σk, k=0, 1, 2. То есть, в случае, когда коэффициент σk масштабирования равен 1, 0, кодированное значение sk равно 256 (и значение кодированного префикса равно 7); а если кодированное значение sk равно 1 (с кодированным префиксом, равным 0), соответствующий коэффициент масштабирования будет равен σk=1,0/256.
В кодеке G-PCC большинство конфигураций для кодирования атрибутов приспособлены для работы с положительными координатами. В этом случае для каждой точки с индексом i и сферическими координатами ck, i, перед умножением на коэффициенты масштабирования, из сферических координат ck, k=0, 1, 2 вычитают, соответственно, смещения масштабирования, ok.
Затем на основе сферических координат ck, коэффициентов σk масштабирования и смещений ok масштабирования, получают масштабированные сферические координаты sck, i, k=0, 1, 2
для k принадлежащего {0, 1, 2}.
Для заданного k (принадлежащего {0, 1, 2}) смещение ok масштабирования равно минимальному значению сферических координат ck, i среди всех кодированных точек (т.е. для всех i). То есть, масштабированные сферические координаты sck, i больше или равны нулю, потому что разности (ck, i - ok) в уравнении (6) больше или равны нулю, а коэффициент sk масштабирования положителен.
Вычисление смещения ok масштабирования (т.е. получение минимального значения) требует доступа к сферическим координатам всех кодированных точек, как в кодере, так и в декодере. Следовательно, необходимо буферизовать сферические координаты всех кодированных точек перед кодированием или декодированием их атрибутов. Такой подход приводит к задержкам в конвейере исполнения, и следовательно увеличивает время ожидания и объем используемой памяти.
Задача, требующая решения, заключается в том, чтобы снять требование ожидания (де)кодирования координат всех точек облака точек до начала (де)кодирования атрибутов, с сохранением эффективности (де)кодирования и без увеличения сложности.
Сущность изобретения
В данном разделе представлено упрощенное общее описание по меньшей мере одного примера осуществления настоящего изобретения, чтобы дать базовое понимание некоторых из его аспектов. Данный раздел не является исчерпывающим описанием одного из примеров осуществления настоящего изобретения. Он не имеет целью указать на ключевые или критически важные элементы вариантов осуществления настоящего изобретения. В данном разделе лишь представлены некоторые из аспектов по меньшей мере одного из примеров осуществления настоящего изобретения, в упрощенной форме, в качестве введения к более подробному описанию, приведенному в ином разделе данного документа.
В соответствии с первым аспектом настоящего изобретения предложен способ кодирования облака точек в битовый поток кодированных данных облака точек, захваченного вращающейся измерительной головкой, при этом каждой точке в облаке точек соответствуют сферические координаты и по меньшей мере один атрибут, и при этом упомянутые сферические координаты представляют азимутальный угол, соответствующий углу захвата датчика вращающейся измерительной головки, захватившего точку, угол возвышения, соответствующий углу возвышения датчика, захватившего точку, и радиус, зависящий от расстояния до точки от начала координат, при этом способ включает:
- сигнализацию, в битовом потоке, информации о смещениях масштабирования, представляющей смещения масштабирования
для каждой текущей точки в облаке точек:
- кодирование сферических координат текущей точки и добавление кодированных сферических координат текущей точки в битовый поток;
- получение декодированных сферических координат при помощи декодирования кодированных сферических координат текущей точки;
- масштабирование декодированных сферических координат на основе смещений масштабирования; и
- кодирование по меньшей мере одного атрибута текущей точки на основе масштабированных декодированных сферических координат, и добавление по меньшей мере одного кодированного атрибута в битовый поток.
В соответствии со вторым аспектом настоящего изобретения предложен способ декодирования облака точек из битового потока кодированных данных облака точек, захваченного вращающейся измерительной головкой, при этом способ включает:
- доступ к информации о смещениях масштабирования из битового потока;
для каждой текущей точки в облаке точек:
- получение декодированных сферических координат при помощи декодирования кодированных сферических координат текущей точки, полученных из битового потока, при этом сферические координаты текущей точки представляют азимутальный угол, соответствующий углу захвата датчика вращающейся измерительной головки, захватившего точку, угол возвышения, соответствующий углу возвышения датчика, захватившего точку, и радиус, зависящий от расстояния до точки от начала координат;
- масштабирование декодированных сферических координат на основе смещений масштабирования, полученных из информации о смещениях масштабирования; и
- декодирование атрибутов текущей точки на основе масштабированных декодированных сферических координат.
В одном из примеров осуществления настоящего изобретения смещения масштабирования определяют, чтобы гарантировать, что масштабированные сферические координаты являются неотрицательными и/или принадлежат заданным диапазонам.
В одном из примеров осуществления настоящего изобретения смещения масштабирования определяют как меньшие, чем минимальные значения, вычисленные на основе декодированных сферических координат всех точек облака точек.
В одном из примеров осуществления настоящего изобретения смещения масштабирования определяют на основе характеристик датчиков и захвата вращающейся измерительной головки.
В одном из примеров осуществления настоящего изобретения информация о смещениях масштабирования содержит смещения масштабирования.
В одном из примеров осуществления настоящего изобретения информация о смещениях масштабирования указывает на конкретный метод определения смещений масштабирования.
В одном из примеров осуществления настоящего изобретения в одном из конкретных методов могут применять операцию усечения или операцию по модулю.
В соответствии с третьим аспектом настоящего изобретения предложено устройство кодирования облака точек в битовый поток кодированных данных облака точек, захваченного вращающейся измерительной головкой. Устройство включает один или более процессоров, сконфигурированных для выполнения способа, соответствующего первому аспекту настоящего изобретения.
В соответствии с четвертым аспектом настоящего изобретения предложено устройство декодирования, из битового потока, точек облака точек, захваченного вращающейся измерительной головкой. Устройство включает один или более процессоров, сконфигурированных для выполнения способа, соответствующего второму аспекту настоящего изобретения.
В соответствии с пятым аспектом настоящего изобретения предложен компьютерный программный продукт, включающий инструкции, которые при исполнении программы одним или более процессорами обеспечивают выполнение, одним или более процессорами, способа в соответствии с первым аспектом настоящего изобретения.
В соответствии с шестым аспектом настоящего изобретения предложен компьютерный программный продукт, включающий инструкции, которые при исполнении программы одним или более процессорами обеспечивают выполнение, одним или более процессорами, способа в соответствии со вторым аспектом настоящего изобретения.
В соответствии с седьмым аспектом настоящего изобретения предложен носитель данных, содержащий инструкции программного кода для выполнения способа в соответствии с первым аспектом настоящего изобретения.
В соответствии с восьмым аспектом настоящего изобретения предложен носитель данных, содержащий инструкции программного кода для выполнения способа в соответствии со вторым аспектом настоящего изобретения.
В соответствии с девятым аспектом настоящего изобретения предложен способ битовый поток кодированных данных облака точек, захваченного вращающейся измерительной головкой, при этом битовый поток включает по меньшей мере один синтаксический элемент, содержащий информацию о смещениях масштабирования, которая является представлением смещений масштабирования, используемых для масштабирования декодированных сферических координат точек в облаке точек, представленных кодированными данными облака точек.
Особенности по меньшей мере одного из примеров осуществления настоящего изобретения, а также другие цели, преимущества, признаки и возможные применения упомянутого по меньшей мере одного из примеров осуществления настоящего изобретения могут быть уяснены из приведенного ниже описания примеров, рассматриваемых в сочетании с приложенными чертежами.
Краткое описание чертежей
Далее для иллюстрации рассмотрим приложенные чертежи, где показаны примеры осуществления настоящего изобретения.
На фиг. 1 проиллюстрирован вид сбоку измерительной головки и некоторые из ее параметров, в соответствии с существующим уровнем техники.
На фиг. 2 проиллюстрирован вид сверху измерительной головки и некоторые из ее параметров, в соответствии с существующим уровнем техники.
На фиг. 3 проиллюстрировано равномерное распределение данных, захваченных вращающейся измерительной головкой, в соответствии с существующим уровнем техники.
На фиг. 4 проиллюстрировано представление точки в трехмерном пространстве в соответствии с существующим уровнем техники.
На фиг. 5 показан кодер облака точек, который аналогичен кодеру G-PCC, основанному на дереве предсказания, в соответствии с существующим уровнем техники.
На фиг. 6 показан декодер облака точек, который аналогичен декодеру G-PCC, основанному на дереве предсказания, в соответствии с существующим уровнем техники.
На фиг. 7 проиллюстрирована блок-схема алгоритма для способа 100 кодирования атрибутов точек в облаке точек, захваченного вращающейся измерительной головкой, в соответствии по меньшей мере с одним из примеров осуществления настоящего изобретения.
На фиг. 8 проиллюстрирована блок-схема алгоритма для способа 200 декодирования атрибутов точек в облаке точек, захваченного вращающейся измерительной головкой, в соответствии по меньшей мере с одним из примеров осуществления настоящего изобретения.
На фиг. 9 эскизно проиллюстрирована блок-схема одного из примеров системы, в которой могут быть реализованы различные аспекты и примеры осуществления настоящего изобретения.
На различных чертежах аналогичные числовые обозначения могут обозначать аналогичные компоненты.
Подробное описание изобретения
Ниже будет более полно описан по меньшей мере один из примеров осуществления настоящего изобретения, со ссылками на приложенные чертежи, на которых проиллюстрирован по меньшей мере один из примеров осуществления настоящего изобретения. Однако примеры осуществления настоящего изобретения могут быть реализованы во множестве альтернативных форм, и их не следует считать ограниченными приведенными здесь иллюстрациями. Соответственно, нужно понимать, что примеры осуществления настоящего изобретения не следует считать ограниченными конкретными описанными формами. Напротив, настоящее описание подразумевает, что в сущность и объем настоящего изобретения входят также все соответствующие модификации, эквиваленты и альтернативы.
Если чертеж является блок-схемой алгоритма, нужно понимать, что он также представляет блок-схему соответствующего устройства. Аналогично, когда чертеж является блок-схемой устройства, нужно понимать, что он также представляет блок-схему алгоритма соответствующего способа или процедуры.
По меньшей мере один из аспектов настоящего изобретения относится, в общем, к кодированию и декодированию облака точек, и по меньшей мере еще один из аспектов настоящего изобретения относится, в общем, к передаче сформированного или кодированного битового потока.
При этом рассмотренные здесь аспекты настоящего изобретения не ограничены стандартами MPEG, например, частью 5 или частью 9 стандарта MPEG-I, относящегося к сжатию облаков точек, и могут применяться, к примеру, в других стандартах или рекомендациях, как существующих, так и будущих, а также в расширениях любых из подобных стандартов и рекомендаций (включая часть 5 и часть 9 MPEG-I). Если на обратное не указано прямо, или если для этого нет технических препятствий, аспекты, рассмотренные в настоящей заявке, могут применяться как по отдельности, так и совместно.
Настоящее изобретение относится к способам и устройству для кодирования/декодирования облака точек в битовый поток кодированных данных облака точек, захваченного вращающейся измерительной головкой. Каждой точке в облаке точек соответствуют сферические координаты и атрибуты. Способ включает сигнализацию, в битовом потоке, информации о смещениях масштабирования, представляющей смещения масштабирования, и для каждой точки в облаке точек: кодирование/декодирование сферических координат текущей точки; получение декодированных сферических координат текущей точки на основе кодированных сферических координат; масштабирование декодированных сферических координат текущей точки с использованием смещений масштабирования; и кодирование/декодирование атрибута текущей точки на основе масштабированных декодированных сферических координат.
Сигнализация информации о смещениях масштабирования в битовом потоке позволяет не вычислять смещения масштабирования в декодере и устраняет необходимость ожидать декодирования координат всех точек до начала декодирования атрибутов, без снижения эффективности декодирования.
Настоящее изобретение также позволяет снизить объем используемой памяти, поскольку не требуется буферизация всех координат декодированных точек перед декодированием атрибутов этих декодированных точек.
На фиг. 7 проиллюстрирована блок-схема алгоритма для способа 100 кодирования атрибутов точек в облаке точек, захваченного вращающейся измерительной головкой, в соответствии по меньшей мере с одним из примеров осуществления настоящего изобретения.
На шаге 110 определяют смещения ok масштабирования.
На шаге 120 информацию о смещениях масштабирования, представляющую смещения ok масштабирования, сигнализируют в битовом потоке В.
Для каждой текущей точки облака точек на наше 130 кодируют сферические координаты текущей точки и добавляют их в битовый поток В.
На шаге 140 получают декодированные сферические координаты с помощью декодирования кодированных сферических координат.
На шаге 150 декодированные сферические координаты текущей точки масштабируют на основе смещений ok масштабирования, к примеру, см. уравнение (6).
На шаге 160 кодируют по меньшей мере один атрибут текущей точки на основе масштабированных декодированных сферических координат, и упомянутый по меньшей мере один кодированный атрибут добавляют в битовый поток В.
Способ не требует буферизации сферических координат всех точек облака точек перед кодированием атрибутов точек. Способ не снижает эффективность кодирования и не увеличивает сложность кодирования.
Информация о смещениях масштабирования может быть любой информацией, которая может быть использована для определения смещений ok масштабирования до полного декодирования сферических координат всех кодированных точек облака точек.
Информация о смещениях масштабирования может находиться в части битового потока, которую считывают/вызывают/получают/декодируют до восстановления/декодирования сферических координат кодированных точек.
В одном из примеров осуществления настоящего изобретения информацию о смещениях масштабирования сигнализируют в наборе параметров атрибутов G-PCC.
В одном из примеров осуществления настоящего изобретения информацию о смещениях масштабирования сигнализируют в наборе параметров геометрии G-PCC.
В одном из примеров осуществления настоящего изобретения информацию о смещениях масштабирования сигнализируют в заголовке "кирпича" (brick header) атрибутов G-PCC.
В одном из примеров осуществления настоящего изобретения информацию о смещениях масштабирования сигнализируют в заголовке "кирпича" геометрии G-PCC.
В одном из примеров осуществления настоящего изобретения смещения ok масштабирования определяют, чтобы гарантировать, что масштабированные сферические координаты sck, i являются неотрицательными и/или принадлежат заданным диапазонам.
В первом варианте, в кодере, кодер определяет смещения ok масштабирования как минимальные значения mk, для любых k, вычисленные на основе декодированных сферических координат ck, i всех точек облака точек.
Этот вариант является предпочтительным, поскольку не требует ожидания декодирования, на стороне декодера, сферических координат всех точек облака точек до начала декодирования атрибутов.
Однако кодер все же должен ожидать и буферизовать координаты всех точек, чтобы быть способным определить смещения ok масштабирования и начать кодировать атрибуты.
В еще одном варианте кодер определяет смещения ok масштабирования как значения, меньшие минимальных значений mk, для любых k.
В одном из примеров осуществления настоящего изобретения, соответствующих упомянутому второму варианту, смещения ok масштабирования определяют на основе характеристик датчиков и захвата.
Этот пример осуществления настоящего изобретения является предпочтительным, поскольку не требует ожидания кодирования/декодирования сферических координат всех точек облака точек до начала кодирования/декодирования атрибутов как на стороне кодера, так и на стороне декодера.
К примеру, характеристика датчика и захвата может быть двоичным значением, указывающим, выполнила ли вращающаяся измерительная головка, полный поворот для захвата кадра облака точек, и/или собственно характеристикой датчика. Для определения смещений ok масштабирования может использоваться конфигурация кодирования геометрии, например, точность координат точек или шаги квантования.
В первом примере в передней части автомобиля установлен лидарный датчик, сконфигурированный для получения точек спереди, что соответствует получению точек в полусфере, где значения азимутальных углов φ содержатся в диапазоне [-2N-2; 2N-2], соответствующем повороту азимутального угла в диапазоне [-π/2; π/2] (см. уравнение (1)). Кодер затем может выбирать o1 (если для азимутальной координаты k=1) равным нижней границе диапазона получения азимутального угла: -2N-2, например, или равным чуть меньшему значению: наименьшее значение (или еще меньшее значение), которое может принимать угол φ, например, в случае кодирования с потерями.
Во втором примере кодер сконфигурирован для невыполнения кодирования любых точек, которые ближе к датчику, чем передний, задний, левый и правый края автомобиля, на котором он установлен. Затем может быть определен минимальный радиус, как расстояние от датчика до ближайшего края автомобиля, и использован для определения о0 (если k=0 координаты радиуса). Минимальный радиус вычисляют на основе физического расстояния от датчика до ближайшего края автомобиля, но также и на основе конфигурационной информации кодера, например, шага квантования радиуса, и пространственной точности облака точек в физическом декартовом пространстве (например, смещение на х=1, у=1 и z=l в облаке точек может соответствовать смещению на 1 мм по оси x, 1 мм по оси у и 1 мм по оси z в реальном/физическом пространстве).
В третьем примере кодер может быть сконфигурирован для невыполнения кодирования точек, полученных на основе n первых углов возвышения лидарного датчика (например, их кодируют в другом слайсе G-PCC и смещения масштабирования сигнализируют в заголовке "кирпича"). В этом случае минимальный индекс о2 угла возвышения (если k=2 для координаты углы возвышения) может быть определен как равный n.
В одном из примеров осуществления настоящего изобретения информация о смещениях масштабирования содержит смещения ok масштабирования.
В одном из примеров осуществления настоящего изобретения информация о смещениях масштабирования также указывает на использование конкретного метода определения смещений ok масштабирования.
В одном из примеров осуществления настоящего изобретения информация о смещениях масштабирования содержит конфигурационную информацию кодирования геометрии.
В одном из примеров осуществления настоящего упомянутую конфигурационную информацию кодирования геометрии сигнализируют в наборе параметров геометрии G-РСС.
К примеру, в G-PCC, поскольку радиус r и индекс угла возвышения (или, эквивалентно, индекс датчика) всегда положительны или равны 0, конфигурационная информация кодирования геометрии может указывать на то, что смещения о0 и o2 масштабирования, относящиеся к радиусу и углу возвышения, определены как равные 0, и на то, что смещение o1 масштабирования, относящееся к азимутальному углу, определяют на основе количества бит точности представления азимутального угла, которое указано в наборе параметров геометрии с помощью синтаксического элемента geom_angular_azimuth_scale_log2_minus11 (соответствует N-11 в уравнении 1). Граница b1 в этом случае определяется как 2geom_angular_azimuth_scale_log2_minus11+11-1. Целочисленное представление азимутального угла в этом случае должно соответствовать ограничению, гласящему, что целочисленное представление азимутального угла любой точки в облаке точек должно лежать в диапазоне [-(2geom_angular_azimuth_scale_log2_minus11+11-1), 2geom_angular_azimuth_scale_log2_minus11+11-1]=[-b1;b1], что представляет равномерное квантование интервала [-π, π]. Тогда смещение o1 масштабирования может быть задано равным -b1, и это гарантирует, что масштабированная сферическая координата sck, 1 будет неотрицательной.
Однако в дереве предсказания G-PCC нет ничего, что требовало бы или гарантировало проверку этого ограничения в битовых потоках, соответствующих G-PCC. Кодер G-PCC может быть специально сконструированным таким образом, чтобы формировать только целочисленные представления азимутального угла в диапазоне [-b1;b1], однако с точки зрения декодирования нет гарантии, что кодер соблюдал это ограничение при формировании битовых потоков по стандарту G-PCC.
Чтобы решить эту проблему в одном из вариантов в конфигурационной информации кодирования геометрии указывают, что декодированные азимутальные углы c1, i принадлежат диапазону [-b1, b1], а смещение o1 масштабирования определяют как равное o1=-b1, в результате чего декодированные азимутальные углы sc1, i будет неотрицательными.
Этот вариант предпочтителен, поскольку не требует коррекции декодирования координат точек.
Однако требование формировать битовый поток, следующий этому ограничению, не является наилучшим решением, поскольку в кодере возможны ошибки, имеющие результатом битовые потоки, не соответствующие стандарту.
В одном из вариантов декодирование геометрии корректируют так, чтобы получать неотрицательные масштабированные декодированные азимутальные углы sc1, i, даже когда разность (ck, i - ok) отрицательна.
В одном из вариантов значения декодированных азимутальных углов c1, i усекают, чтобы гарантировать нахождение декодированных азимутальных углов в диапазоне [-b1;b1], если декодированный азимутальный угол c1, i меньше -b1, то декодированный азимутальный угол c1, i назначают равным -b1, и если декодированный азимутальный угол c1, i больше b1, то декодированный азимутальный угол c1, i назначают равным b1 до вычисления масштабированного азимутального угла.
В другом варианте, если декодированный азимутальный угол c1, i больше b1, значение декодированного азимутального угла не модифицируют/не усекают, поскольку это не мешает декодированию атрибутов.
Применение уравнения (6) в этом варианте с усечением нижней границы декодированных азимутальных углов c1, i для гарантии неотрицательности масштабированного декодированного азимутального угла sc1, i эквивалентно использованию уравнения (7):
для усечения отрицательных декодированных азимутальных углов sc1, i до нуля, где смещение o1 масштабирования определено как равное o1=-b1.
В одном из вариантов в кодере используют операцию деления по модулю (или эквивалентную) над декодированными азимутальными углами c1, i для ограничения декодированных азимутальных углов c1, i диапазоном [-b1, b1] (или, эквивалентно, диапазоном [-π, π]): если декодированный азимутальный угол c1, i лежит снаружи [-b1, b1], декодированный азимутальный угол задают равным c1, i modulo b1. К примеру, пока декодированный азимутальный угол c1, i меньше -b1, декодированный азимутальный угол задают равным c1, i+(1+2*b1), а когда c1, i больше b1, c1, i задают равным c1, i-(1+2*b1). Такая итеративная процедура зачастую является предпочтительной, поскольку она менее затратна по процессорному времени, чем «настоящая» операция деления по модулю.
Операция деления по модулю может вести себя иначе на отрицательных числах, в зависимости от ее определения и/или применяемого языка программирования. Если взять определение, данное Дональдом Кнутом:
приведенное выше описание использования операции по модулю с b1 приблизительно эквивалентно назначению c1, i равным:
Единственная разница: при использовании уравнения (9) c1, i строго меньше b1.
Использование уравнения (6) и операции деления по модулю в этом случае также эквивалентно вычислению сначала разности d1, i=(c1, i-o1), где смещение o1 масштабирования определено как o1=-b1, и затем применение операции деления по модулю к d1, i, и следовательно, для масштабированного декодированного азимутального угла sc1, i уравнение (6) меняется на:
Операция усечения или деления по модулю может выполняться в ходе процедуры декодирования геометрии, чтобы в точности далее декодированных точек учитывались модифицированные азимутальные углы.
Альтернативно, операция усечения или деления по модулю может выполняться после декодирования геометрии, и до декодирования атрибутов, например, как показано выше, при масштабировании координат.
В одном из вариантов смещения масштабирования, которые могут настраиваться кодером (если нужно, это может выполняться без буферизации точек, например, в предшествующем кадре) сигнализируют в наборе параметров атрибутов, однако это не гарантирует, что (ck, i-ok) всегда будет больше или равно нулю. В этом случае вместо применения уравнения (6) масштабированные коэффициенты определяют при помощи метода, который гарантирует, что масштабированные коэффициенты sck, i будут больше или равны нуля, к примеру, с помощью уравнения (7), или с использованием операции деления по модулю, например, с помощью уравнения (10).
На фиг. 8 проиллюстрирована блок-схема алгоритма для способа 200 декодирования атрибутов точек в облаке точек, захваченного вращающейся измерительной головкой, в соответствии по меньшей мере с одним из примеров осуществления настоящего изобретения.
На шаге 210 осуществляют доступ к информации о смещениях масштабирования из битового потока В.
Для каждой текущей точки в облаке точек на шаге 220 получают декодированные сферические координаты на основе кодированных сферических координат текущей точки, полученных из битового потока В, при этом сферические координаты текущей точки представляют азимутальный угол, соответствующий углу захвата датчика вращающейся измерительной головки, захватившего точку, угол возвышения, соответствующий углу возвышения датчика, захватившего точку, и радиус, зависящий от расстояния до точки от начала координат.
На шаге 230 декодированные сферические координаты текущей точки масштабируют на основе смещений ok масштабирования, полученных из информации о смещениях масштабирования, например, с помощью уравнения (6).
На шаге 240 атрибуты точек в облаке точек декодируют на основе масштабированных декодированных сферических координат.
Битовый поток, отвечающий стандарту G-PCC, должен включать множество конфигурационной информации, используемой для декодирования кодированных данных облака точек.
Некоторые из существующих синтаксических элементов битового потока, отвечающего стандарту G-PCC, имеют конкретные значения, необходимые для реализации настоящего изобретения, а также требуются новые синтаксические элементы.
Так, в одном из примеров осуществления настоящего изобретения, информация о смещениях масштабирования содержит конфигурационную информацию кодирования геометрии и кодирования атрибутов, которая указывает на использование конкретного метода определения смещений ok масштабирования.
К примеру, для существующих синтаксических элементов, образующих упомянутую конфигурационную информацию кодирования геометрии и кодирования атрибутов, в наборе параметров геометрии существующий синтаксический элемент "geom_tree_type" задают равным 1, что указывает на использование дерева предсказания для кодирования геометрии. Существующий синтаксический элемент "geometry_angular_enabled_flag" в наборе параметров геометрии задают равным 1, что указывает на использование сферических координат в дереве предсказания в заданной схеме предсказания. В наборе параметров атрибутов существующий синтаксический элемент "attr_coding_type/attr_encoding" задают равным 0 для указания на применение преобразования с предсказанием LoD для кодирования атрибутов точек, существующий синтаксический элемент "lod_scalability_enabled_flag/scalable_lifting_enabled_flag" задают равным 0 для указания на то, что масштабируемое представление не используется, существующий синтаксический элемент "max_num_detail_levels_minus1/num_detail_levels_minus1" задают равным 0 для указания на использование одиночного уровня детализации, и существующий синтаксический элемент morton_sort_skip_enabled_flag/canonical_point_order_flag'' задают равным 1 для указания на то, что атрибуты точек кодируют в том же порядке, в котором их кодируют для геометрии. Существующий синтаксический элемент "aps_coord_conv_flag/spherical_coord_flag" задают равным 1 для указания на то, что атрибуты точек кодируют с помощью сферических координат, что дает лучшее качество сжатия атрибутов точек, а также на то, что коэффициенты масштабирования сигнализируют в битовом потоке.
В соответствии с настоящим изобретением в битовый поток добавляют новый синтаксический элемент для сигнализации информации о смещениях масштабирования.
Сигнализация информации о смещениях масштабирования указывает на то, что для кодирования атрибутов точек используют конкретный механизм расширения, а также на то, что параметры кодирования атрибутов сигнализируют в битовом потоке, например, части-расширении набора параметров атрибутов битового потока, отвечающего стандарту G-PCC.
В одном из примеров осуществления настоящего изобретения новый синтаксический элемент, в котором сигнализируют информацию о смещениях масштабирования, содержит двоичную информацию, например, флаг, с именем "attr_coord_conv_scale_fixed_offset_flag" и смещения масштабирования. Эту двоичную информацию задают равной 1 для указания на то, что смещения ok масштабирования далее действительно сигнализируют в битовом потоке, и за этой двоичной информацией в битовом потоке следует информация, являющаяся представлением смещений масштабирования.
В способе 200 декодирования двоичную информацию (например, флаг "attr_coord_conv_scale_fixed_offset_flag") декодируют из битового потока. Если эта двоичная информация равна 1, смещения ok масштабирования затем получают декодированием информации, являющейся представлением упомянутых смещений ok масштабирования, из битового потока. Если двоичная информация равна 0, способ 200 декодирования не активируют.
В одном из примеров осуществления настоящего изобретения новый синтаксический элемент, в котором сигнализируют информацию о смещениях масштабирования, содержит двоичную информацию, например, флаг, с именем "attr_coord_conv_scale_fixed_offset_flag", который задают равным 1 для указания на то, что смещения (о0, o1, o2) масштабирования равны, соответственно (0, -(2geom_angular_azimuth_scale_log2_minus11+11-1), 0). Эту двоичную информацию задают равной 1 также для указания на то, что вместо уравнения (6) для масштабирования сферических координат декодированных точек используют уравнение (7).
В способе 200 декодирования двоичную информацию (например, флаг "attr_coord_conv_scale_fixed_offset_flag") декодируют из битового потока. Если эта двоичная информация равна 1, смещения (о0, o1, o2) масштабирования задают, соответственно, равными (2geom_angular_azimuth_scale_log2_minus11+11-1), 0), а вместо уравнения (6) для масштабирования сферических координат декодированных точек используют уравнение (7). Если двоичная информация равна нулю, способ 200 декодирования не активируют.
В одном из вариантов конфигурационная информация кодирования атрибутов (и опционально, конфигурационная информация кодирования геометрии) указывает на то, что метод кодирования/декодирования атрибутов может поддерживать использование отрицательных геометрических координат (и значит, отрицательные значения масштабированных декодированных сферических координат). Так, используя рассмотренный выше пример сигнализации существующих синтаксических элементов, в одном из примеров осуществления настоящего изобретения новый синтаксический элемент, в котором сигнализируют информацию о смещениях масштабирования, содержит двоичную информацию, например, флаг, с именем "attr_coord_conv_scale_fixed_offset_flag", который задают равным 1 для указания на то, что смещения (о0, o1, o2) масштабирования равны, соответственно (0, 0, 0).
На фиг. 9 эскизно проиллюстрирована блок-схема одного из примеров системы, в которой могут быть реализованы различные аспекты и примеры осуществления настоящего изобретения.
Система 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) радиочастотный узел, который может принимать радиочастотный сигнал (RF), передаваемый, например, по радиоинтерфейсу передатчиком, (ii) входной терминал композитного интерфейса (СОМР), (iii) входной терминал USB и/или (iv) входной терминал HDMI.
В различных вариантах осуществления настоящего изобретения устройства ввода в блоке 390 могут иметь соответствующие связанные с ними элементы обработки входных данных, известные на существующем уровне техники. К примеру, радиочастотный узел может быть связан с элементами, необходимым для следующего: (i) выбор необходимой частоты (это также называют выделением сигнала, или ограничением полосы частот до заданной полосы), (ii) преобразование выделенного сигнала с понижением частоты, (iii) повторное ограничение полосы частоты до более узкой для выделения (к примеру) полосы частот сигнала, которая может, в некоторых из вариантов осуществления настоящего изобретения, называться каналом, (iv) демодуляция преобразованного с понижением частоты и ограниченного по полосе частот сигнала, (v) выполнение исправления ошибок, и (vi) демультиплексирование для выделения требуемого потока пакетов данных. Радиочастотный узел в различных вариантах осуществления настоящего изобретения может включать один или более элементов для выполнения таких функций, к примеру, селекторы частоты, селекторы сигнала, ограничители полосы частот, селекторы канала, фильтры, понижающие преобразователи, демодуляторы, корректоры ошибок и демультиплексоры. Радиочастотный узел может включать устройство настройки, которое выполняет некоторые из подобных функций, включая, например, понижающее преобразование принятого сигнала до пониженной частоты (к примеру, промежуточной частоты или до близкой к основной полосе частот) или до основной полосы частот.
В одном из вариантов осуществления настоящего изобретения, представляющем собой телеприставку, радиочастотный узел и связанный с ним элемент обработки входных данных может принимать радиочастотный сигнал, передаваемый по проводному (например, кабельному) носителю. В этом случае радиочастотный узел может выполнять селекцию частоты, при помощи фильтрации, понижающего преобразования и повторной фильтрации, до требуемой полосы частот.
В различных вариантах осуществления настоящего изобретения описанные выше (и другие) элементы могут иметь иной порядок, некоторые из элементов могут быть удалены, и/или могут быть добавлены другие элементы, выполняющие сходные или отличающиеся функции.
Добавление элементов может включать введение элементов между существующими, к примеру, введение усилителей и аналого-цифрового преобразователя. В различных вариантах осуществления настоящего изобретения радиочастотный узел может иметь антенну.
При этом упомянутые терминалы USB и/или HDMI могут содержать соответствующие интерфейсные процессоры для соединения системы 300 с другими электронными устройствами по соединениям USB и/или HDMI. Нужно понимать, что различные аспекты обработки входных данных, к примеру, коррекция ошибок с помощью кодов Рида-Соломона, могут быть реализованы при помощи отдельной интегральной схемы обработки ввода или при внутри процессора 310, в зависимости от требований. Аналогично, аспекты обработки интерфейсов USB или HDMI могут быть реализованы в отдельных интерфейсных интегральных схемах или внутри процессора 310 в зависимости от требований. Демодулированный, с исправленными ошибками и демультиплексированный поток может быть подан в различные обрабатывающие элементы, включающие, например, процессор 310 и кодер/декодер 330, функционирующие в сочетании с элементами памяти и хранения, для обработки потока данных, необходимой для отображения на устройстве вывода.
Различные элементы системы 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. Сигнализируемая информация может включать битовый поток В и/или, например, информацию о смещениях масштабирования.
Нужно понимать, что сигнализация может выполняться множеством различных способов. К примеру, для сигнализации информации соответствующему декодеру в различных вариантах осуществления настоящего изобретения могут применяться один или более синтаксических элементов, флагов и т.п.
Система 300 может подавать выходной сигнал в различные устройства вывода, включая дисплей 400, громкоговорители 500 и иные периферийные устройства 600. Упомянутые иные периферийные устройства 600 могут включать в различных примерах осуществления настоящего изобретения одно или более из следующего: автономный DVR, проигрыватель дисков, стереосистему, систему освещения, а также другие устройства, выполняющие свои функции на основе выходных данных системы 300.
В различных вариантах осуществления настоящего изобретения между системой 300 и дисплеем 400, громкоговорителями 500 и иными периферийными устройствами 600 могут передаваться сигналы управления при помощи, например, такой сигнализации, как AV Link (Audio/Video Link, «аудио/видео линия»), СЕС (Consumer Electronics Control, «управление бытовой электроникой») или иных протоколов связи, обеспечивающих возможность управления между устройствами (device-to-device) с вмешательством пользователя или без него.
Устройства вывода могут быть соединены с системой 300, с возможностью связи, по специальным соединениям через соответствующие интерфейсы 360, 370 и 380.
Альтернативно, устройства вывода могут быть соединены с системой 300 при помощи канала 700 связи через интерфейс 350 связи. Дисплей 400 и громкоговорители 500 могут быть объединены в одном блоке с остальными компонентами системы 300 в составе электронного устройства, например, телевизора.
В различных вариантах осуществления настоящего изобретения интерфейс 360 дисплея может включать дисплейный драйвер, к примеру, микросхему тайминг-контроллера (Т Con).
Дисплей 400 и громкоговоритель 500, альтернативном, могут быть отдельными от одного или более других компонентов, к примеру, если радиочастотный узел блок 390 ввода является частью отдельной телеприставки. В тех вариантах осуществления настоящего изобретения, где дисплей 400 и громкоговорители 500 являются внешними компонентами, выходной сигнал может подаваться по специальным выходным включая, к примеру, порты HDMI, порты USB или порты СОМР.
На фиг. 1-9 показаны различные способы, описанные в данном документе, при этом каждый способ включает один или более шагов, или операций, для реализации описанного способа. Если конкретный порядок выполнения шагов или операций не является необходимым для корректного выполнения способа, то порядок и/или использование каких-либо шагов, или операций, могут быть изменены, или они могут комбинироваться.
Некоторые из примеров были проиллюстрированы на примерах блок-схем и/или блок-схем алгоритмов. Каждый такой блок может представлять собой схемный элемент, модуль или фрагмент кода, который включает одну или более исполняемых инструкций для реализации заданной логической функции (или функций). Следует отметить, что в некоторых альтернативных реализациях, функции, отмеченные в блоке, могут выполняться в порядке, отличающемся от проиллюстрированного на чертеже. К примеру, два блока, показанные в виде последовательности, фактически могут исполняться по существу одновременно, или же, в некоторых случаях, блоки могут исполняться в обратном порядке, - в зависимости от используемой функциональности.
Реализации и аспекты, описанные в данном документе, могут быть реализованы, к примеру, в форме способа или процедуры, устройства, компьютерной программы, потока данных, битового потока или сигнала. Даже если реализация описана только в контексте одной формы (к примеру, только как способ), описанные отличительные признаки могут быть также реализованы и в других формах (к примеру, устройства или компьютерной программы).
Способы могут быть также реализованы, например, в форме процессора, что обобщенно подразумевает устройства обработки данных, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Процессоры также включают устройства связи.
Также способы могут быть реализованы за счет выполнения инструкций процессором, при этом такие инструкции (и/или значения данных, получаемые при выполнении) могут храниться на машиночитаемом носителе данных). Машиночитаемый носитель данных может принимать форму машиночитаемого программного продукта, воплощенного на одном или более машиночитаемых носителей и имеющего воплощенный на нем машиночитаемый программный код, который может исполняться компьютером. Под машиночитаемым носителем данных в настоящем документе понимают носитель данных, обладающий неотъемлемой способностью хранить в себе информацию, а также способностью обеспечивать извлечение информации из него. К примеру, машиночитаемый носитель данных может представлять собой, без ограничения перечисленным, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, оборудование или устройство, или же любую подходящую комбинацию перечисленного. Специалисты в данной области техники должны понимать, что перечисленное ниже, являясь конкретными примерами машиночитаемых носителей данных, в которых могут применяться варианты осуществления настоящего изобретения, является лишь иллюстративным и неисчерпывающим перечислением: портативная компьютерная дискета, жесткий диск, память "только для чтения" (ROM), перезаписываемая память "только для чтения" (erasable programmable read-only memory, EPROM) или Flash-память, портативная память "только для чтения" на компакт-диске (compact disc read-only memory, CD-ROM), оптическое запоминающее устройство, магнитное запоминающее устройство или любая комбинация перечисленного.
Инструкции могут образовывать прикладную программу, материально воплощенную на читаемом процессором носителе.
Инструкции могут, к примеру, иметь форму аппаратного обеспечения, микропрограммного обеспечения, программного обеспечения или их комбинации. Инструкции могут находиться, к примеру, в операционной системе, в отдельном приложении или в их комбинации. Процессор, соответственно, может быть определен, например, одновременно как устройство, сконфигурированное для выполнения процедуры, и как устройство, которое включает читаемый процессором носитель (например, запоминающее устройство) с инструкциями для выполнения процедуры. Также на читаемом процессором носителе, в дополнение к инструкциям или вместо них, могут храниться значения данных, получаемых в результате исполнения.
Устройство может быть реализовано, к примеру, в форме подходящего аппаратного, программного и микропрограммного обеспечения. Примеры таких устройств могут включать персональные компьютеры, портативные компьютеры, смартфоны, планшетные компьютеры, цифровые мультимедийные телеприставки, цифровые телеприемники, персональные системы видеозаписи, подключенные к Интернету бытовые приборы, подключенные к Интернету автомобили и их соответствующие системы обработки данных, устанавливаемые на голове дисплейные устройства или очки с прозрачными дисплеями (HMD), проекторы (мультимедийные), среды виртуальной реальности CAVE (системы со множеством дисплеев), серверы, видеокодеры, видеодекодеры, постпроцессоры, обрабатывающие выходные данные с видеодекодера, препроцессоры, подающие входные данные в видеокодер, веб-серверы, телеприставки или любые другие устройства для обработки облаков точек, видеоинформации, изображений или иные устройства связи. Очевидно, такое оборудование может быть мобильным или даже установлено на подвижной транспортной платформе.
Компьютерное программное обеспечение может быть реализовано при помощи процессора 310 или при помощи аппаратного обеспечения, или с помощью комбинации программного и аппаратного обеспечения. В качестве неограничивающего примера варианты осуществления настоящего изобретения могут быть также реализованы при помощи одной или боле интегральных схем. Память 320 может быть любого типа, подходящего к техническому окружению, и может быть реализовано с помощью любой подходящей технологии хранения данных, к примеру, без ограничения перечисленным, оптических запоминающих устройств, магнитных запоминающих устройств, полупроводниковых запоминающих устройств, несъемной памяти или съемной памяти. Процессор 310 может быть любого типа, подходящего к техническому окружению и может включать, без ограничения перечисленным, одно или более из следующего: микропроцессоры, компьютеры общего назначения, компьютеры специального назначения, а также процессоры, основанные на многоядерной архитектуре.
Специалистам в данной области техники должно быть очевидно, что реализации могут формировать множество различных сигналов, форматированных для содержания информации, которая, к примеру, может сохраняться или передаваться. Такая информация может включать, например, инструкции для выполнения способа или данные, получаемые в результате одной или более описанных реализаций. К примеру, некоторый сигнал может быть форматирован для содержания битового потока в соответствии с одним из описанных вариантов осуществления настоящего изобретения. Такой сигнал может быть форматирован, например, в форме электромагнитной волны (к примеру, с использованием радиочастотной области спектра) или в форме сигнала основной полосы частот. Форматирование может включать, например, кодирование потока данных и модуляцию несущий кодированным потоком данных. Информация, которую содержит сигнал, может быть, например, аналоговой или цифровой информацией. Сигнал, как известно, может передаваться по множеству различных проводных или беспроводных линий связи. Сигнал может храниться на читаемом процессором носителе данных.
Конкретная терминология в настоящем документе используется исключительно для описания конкретных вариантов его осуществления и не имеет целью ограничение настоящего изобретения. В настоящем описании, а также в приложенной формуле изобретения, такие выражения, как «один», «один из» и «упомянутый» в единственном числе могут также подразумевать включение означаемых во множественном числе, если только из контекста очевидно не следует обратное. Нужно также понимать, что выражения «включает/содержит» и/или «включающий/содержащий» в данном документе определяют присутствие перечисленных признаков, подсистем, шагов, операций, элементов и/или компонентов, но не исключают присутствие или добавление одного или боле других признаков, подсистем, шагов, операций, элементов, компонентов и/или их групп. При этом, когда элемент назван «реагирующим» на другой элемент, или «подключенным» к другому элементу, он может отвечать или быть подключенным непосредственно, или могут присутствовать промежуточные элементы. Напротив, если элемент описан как «непосредственно реагирующий» на другой элемент или «непосредственно подключенный» к другому элементу, промежуточные элементы отсутствуют.
Нужно понимать, что использование символа «/» или выражений «и/или» и «по меньшей мере одно из следующего», к примеру, в случае «А/В» «А и/или В» и «по меньшей мере одно из следующего: А и В» может подразумевать включение выбора только первой перечисленной опции (А) или выбор только второй перечисленной опции (В), или выбор обеих опций (А и В). В качестве еще одного примера, в случае: «А, В и/или С» и «по меньшей мере одно из следующего: А, В и С», такие выражения подразумевают включение выбора только первой перечисленной опции (А) или выбор только второй перечисленной опции (В), или выбор только третьей перечисленной опции (С), или выбор только первой и второй перечисленных опций (А и В), или выбор только первой и третьей перечисленных опций (А и С), или выбор только второй и третьей перечисленных опций (В и С), или выбор всех трех опций (А и В и С). Специалистам в данной области техники должно быть очевидно, что это может быть расширено на любое количество перечисленных элементов.
В настоящей заявки могут использоваться множество различных числовых значений. Эти конкретные значения могут приводиться в качестве примера, и аспекты, описанные в данном документе, не ограничены этими конкретными значениями.
Для описания различных элементов в данном документе могли быть использованы термины «первый», «второй» и т.п., однако нужно понимать, что такие элементы не ограничены этими терминами. Данные термины используются исключительно в целях различения одних элементов от других. К примеру, первый элемент может быть назван вторым элементом, и аналогично, второй элемент может быть назван первым элементом, в пределах сущности и объема настоящего изобретения. Между первым и вторым элементами не предполагается никакого порядка предшествования.
Упоминание «примера осуществления настоящего изобретения» или «одного из примеров осуществления настоящего изобретения», или «одной реализации», или «одной из реализаций», а также вариаций этих выражений, используются зачастую для сообщения о том, что некоторый отличительный признак, структура, характеристика и т.п. (описанные в связи с вариантом осуществления настоящего изобретения или реализацией) включены по меньшей мере в один из вариантов осуществления или реализацию настоящего изобретения. То есть, фразы «в одном примере осуществления настоящего изобретения» или «в одном из примеров осуществления настоящего изобретения», или «в одной реализации», или «в одной из реализаций», а также их вариаций, в различных местах настоящей заявки не обязательно отсылают к одному и тому же варианту осуществления настоящего изобретения.
Аналогично, в данном документе выражение «в соответствии с одним из вариантов/примеров/реализацией» или «в одном из вариантов/примере/реализации», а также их вариации, используют зачастую для сообщения о том, что некоторый отличительный признак, структура, характеристика и т.п. (описанные в связи с проиллюстрированным вариантом/примером/реализацией) могут входить в состав по меньшей мере одного проиллюстрированного варианта/примера/реализации настоящего изобретения. Таким образом, появление выражений «в соответствии с одним из вариантов/примеров/реализацией» или «в одном из вариантов/примере/реализации» в различных местах настоящего описания не обязательно обозначает отсылку к одному и тому же варианту/примеру/реализации, а также не означает, что отдельные или альтернативные варианты/примеры/реализации должны исключать друг друга или другие проиллюстрированные варианты/примеры/реализации.
Числовые обозначения, приведенные в формуле изобретения, использованы исключительно для иллюстрации и не ограничивают объем формулы изобретения. Варианты и примеры осуществления настоящего изобретения могут применяться в любых комбинациях или суб-комбинациях, даже если они явно не описаны в данном документе.
Если чертеж является блок-схемой алгоритма, нужно понимать, что он также представляет блок-схему соответствующего устройства. Аналогично, когда чертеж является блок-схемой устройства, нужно понимать, что он также представляет блок-схему алгоритма соответствующего способа или процедуры.
На некоторых из блок-схем имеются стрелки на каналах связи, иллюстрирующие основное направление связи, однако нужно понимать, что связь может осуществляться и в противоположном стрелкам направлении.
В различных реализациях применяют декодирование. «Декодирование» в настоящей заявке может включать все процедуры (или их часть), выполняемые, например, над принятым кадром облака точек (включая, возможно, принятый битовый поток, где кодированы один или более кадров облака точек) для получения окончательных выходных данных, подходящих для отображения или для дальнейшей обработки в домене восстановленного облака точек. В различных вариантах осуществления настоящего изобретения такие процедуры включают одну или более процедуры, выполняемых, как правило, декодером. В различных вариантах осуществления настоящего изобретения такие процедуры, в дополнение или альтернативно, могут включать процедуры, выполняемые декодером, например, из различных реализаций, описанных в настоящей заявке.
В качестве дополнительных примеров, в одном из вариантов осуществления настоящего изобретения «декодирование» может означать энтропийное декодирование, еще одном из вариантов осуществления настоящего изобретения «декодирование» может означать только дифференциальное декодирование, и в еще одном из вариантов осуществления настоящего изобретения «декодирование» может означать комбинации из энтропийного декодирования и дифференциального декодирования. Что именно означает выражение «процедура декодирования», конкретное подмножество операций или, более обобщенно, процедуру декодирования в целом, можно понять из контекста конкретного описания, - специалистам в данной области техники это должно быть очевидно.
В различных реализациях применяют кодирование. Аналогично приведенным выше рассуждениям о «декодировании», «кодирование» в настоящей заявки может включать все процедуры (или их часть), выполняемые, например, над входным кадром облака точек для получения кодированного битового потока. В различных вариантах осуществления настоящего изобретения такие процедуры включают одну или более процедуры, выполняемых, как правило, кодером. В различных вариантах осуществления настоящего изобретения такие процедуры, в дополнение или альтернативно, могут включать процедуры, выполняемые кодером из различных реализаций, описанных в настоящей заявке.
В качестве дополнительных примеров, в одном из вариантов осуществления настоящего изобретения «кодирование» может означать только энтропийное кодирование, в еще одном из вариантов осуществления настоящего изобретения «кодирование» может означать только дифференциальное кодирование, и в еще одном из вариантов осуществления настоящего изобретения «кодирование» может означать комбинации из дифференциального кодирования и энтропийного кодирования. Что именно означает выражение «процедура кодирования», конкретное подмножество операций или, более общо, процедуру кодирования в целом, можно понять из контекста конкретного описания, - специалистам в данной области техники это должно быть очевидно.
Также в данной заявке может упоминаться «определение» различных элементов информации. Определение информации может включать, например, одно или более из следующего: оценка информации, вычисление информации, предсказание информации или извлечение информации из памяти.
Также в данной заявке может упоминаться «доступ» к различным элементам информации. Доступ к информации может включать, к примеру, одно или более из следующего: прием информации, излечение информации (например, из памяти или битового потока), сохранение информации, перемещение информации, копирование информации, вычисление информации, определение информации, предсказание информации или оценку информации.
Также в данной заявке может упоминаться «прием» различных элементов информации. Прием, аналогично «доступу» следует понимать широко. Прием к информации может включать, к примеру, одно или более из следующего: доступ к информации или излечение информации (например, из памяти или битового потока). При этом прием выполняют, как правило, так или иначе, во время таких операций, как сохранение информации, обработка информации, передачи информации, перемещение информации, копирование информации, стирание информации, вычисление информации, определение информации, предсказание информации или оценка информации.
Также в данном документе термин «сигнал» обозначает, помимо прочего, указание на то, что подают в соответствующий декодер. К примеру, в некоторых из вариантов осуществления настоящего изобретения кодер сигнализирует конкретную информацию, например, информацию о смещениях масштабирования. Таким образом, в одном из вариантов осуществления настоящего изобретения один и тот же параметр может применяться как на стороне кодера, так и на стороне декодера. То есть, например, кодер может передавать (явно сигнализировать) конкретный параметр в декодер, в результате чего декодер может использовать этот конкретный параметр. И наоборот, если декодере уже имеется конкретный параметр, помимо прочих, то сигнализация может выполняться без передачи (явной сигнализации), просто чтобы уведомить декодер и выбрать конкретный параметр. Исключение передачи каких-либо фактических функций позволяет экономить биты в различных вариантах осуществления настоящего изобретения. Нужно понимать, что сигнализация может выполняться множеством различных способов. К примеру, для сигнализации информации соответствующему декодеру в различных вариантах осуществления настоящего изобретения могут применяться один или более синтаксических элементов, флагов и т.п. Предшествующее относится к глагольной форме «сигнализировать», однако «сигнализация» может также использоваться в данном документе как существительное.
Было рассмотрено несколько конкретных вариантов реализации настоящего изобретения. Однако нужно понимать, что в них могут быть выполнены множество различных модификаций. К примеру, элементы различных реализаций могут комбинироваться, дополняться, модифицироваться или удаляться, в результате чего могут быть получены другие реализации. При этом, специалисты в данной области техники должны понимать, что вместо рассмотренных здесь могут применяться другие структуры или процедуры, и результирующие реализации будут выполнять по существу ту же функцию (или функции), по существу тем же методом (или методами), с получением по существу того же результата (или результатов), что и описанные реализации. Соответственно, подобные, а также другие реализации, попадают в объем настоящей заявки.
Изобретение относится к области кодирования/декодирования местоположения атрибутов точек в облаке точек. Технический результат заключается в повышении точности и эффективности кодирования/декодирования данных, захваченных вращающейся измерительной головкой. Способ кодирования облака точек в битовый поток кодированных данных облака точек, захваченного вращающейся измерительной головкой, при этом каждой точке в облаке точек соответствуют сферические координаты и по меньшей мере один атрибут, при этом координаты представляют азимутальный угол, соответствующий углу захвата датчика вращающейся измерительной головки, захватившего точку, угол возвышения, соответствующий углу возвышения датчика, захватившего точку, и радиус, зависящий от расстояния до точки от начала координат, при этом способ включает: сигнализацию в битовом потоке; для каждой текущей точки в облаке точек: кодирование сферических координат текущей точки и добавление кодированных сферических координат текущей точки в битовый поток; получение декодированных сферических координат путем декодирования координат текущей точки, масштабирование декодированных сферических и добавление по меньшей мере одного кодированного атрибута в битовый поток 6 н. и 6 з.п. ф-лы, 9 ил.
1. Способ кодирования облака точек в битовый поток кодированных данных облака точек, захваченного вращающейся измерительной головкой, при этом каждой точке в облаке точек соответствуют сферические координаты и по меньшей мере один атрибут, при этом упомянутые сферические координаты представляют азимутальный угол, соответствующий углу захвата датчика вращающейся измерительной головки, захватившего точку, угол возвышения, соответствующий углу возвышения датчика, захватившего точку, и радиус, зависящий от расстояния до точки от начала координат, при этом способ включает:
- сигнализацию (120), в битовом потоке, информации о смещениях масштабирования, представляющей смещения масштабирования; для каждой текущей точки в облаке точек:
- кодирование (130) сферических координат текущей точки и добавление кодированных сферических координат текущей точки в битовый поток;
- получение (140) декодированных сферических координат путем декодирования кодированных сферических координат текущей точки;
- масштабирование (150) декодированных сферических координат на основе смещений масштабирования; и
- кодирование (160) по меньшей мере одного атрибута текущей точки на основе масштабированных декодированных сферических координат и добавление по меньшей мере одного кодированного атрибута в битовый поток.
2. Способ декодирования облака точек из битового потока кодированных данных облака точек, захваченного вращающейся измерительной головкой, при этом способ включает:
- доступ (210) к информации о смещениях масштабирования из битового потока; для каждой текущей точки в облаке точек:
- получение (220) декодированных сферических координат путем декодирования кодированных сферических координат текущей точки, полученных из битового потока, при этом сферические координаты текущей точки представляют азимутальный угол, соответствующий углу захвата датчика вращающейся измерительной головки, захватившего точку, угол возвышения, соответствующий углу возвышения датчика, захватившего точку, и радиус, зависящий от расстояния до точки от начала координат;
- масштабирование (230) декодированных сферических координат на основе смещений масштабирования, полученных из информации о смещениях масштабирования; и
- декодирование (240) атрибутов текущей точки на основе масштабированных декодированных сферических координат.
3. Способ по п. 1 или 2, в котором смещения масштабирования определяют так, чтобы гарантировать, что масштабированные сферические координаты являются неотрицательными и/или принадлежат заданным диапазонам.
4. Способ по п. 3, в котором смещения масштабирования определяют как меньшие, чем минимальные значения, вычисленные на основе декодированных сферических координат всех точек облака точек.
5. Способ по п. 3, в котором смещения масштабирования определяют на основе характеристик датчиков и характеристик захвата вращающейся измерительной головки.
6. Способ по любому из пп. 1-5, в котором информация о смещениях масштабирования включает смещения масштабирования.
7. Способ по любому из пп. 1-6, в котором информация о смещениях масштабирования указывает на использование конкретного метода определения смещений масштабирования.
8. Способ по п. 7, в котором упомянутый конкретный метод использует операцию усечения или операцию по модулю.
9. Устройство для кодирования облака точек в битовый поток кодированных данных облака точек, захваченного вращающейся измерительной головкой, при этом каждой точке в облаке точек соответствуют сферические координаты и по меньшей мере один атрибут, при этом упомянутые сферические координаты представляют азимутальный угол, соответствующий углу захвата датчика вращающейся измерительной головки, захватившего точку, угол возвышения, соответствующий углу возвышения датчика, захватившего точку, и радиус, зависящий от расстояния до точки от начала координат, при этом устройство включает один или более процессоров, сконфигурированных для выполнения следующего:
- сигнализация, в битовом потоке, информации о смещениях масштабирования, представляющей смещения масштабирования для каждой текущей точки в облаке точек:
- кодирование сферических координат текущей точки и добавление кодированных сферических координат текущей точки в битовый поток;
- получение декодированных сферических координат путем декодирования кодированных сферических координат текущей точки;
- масштабирование декодированных сферических координат текущей точки с использованием смещений масштабирования; и
- кодирование по меньшей мере одного атрибута текущей точки на основе масштабированных декодированных сферических координат, и добавление по меньшей мере одного кодированного атрибута в битовый поток.
10. Устройство для декодирования облака точек из битового потока кодированных данных облака точек, захваченного вращающейся измерительной головкой, при этом устройство включает один или более процессоров, сконфигурированных для выполнения следующего:
- доступ к информации о смещениях масштабирования из битового потока; для каждой текущей точки в облаке точек:
- получение декодированных сферических координат путем декодирования кодированных сферических координат текущей точки, полученных из битового потока, при этом сферические координаты текущей точки представляют азимутальный угол, соответствующий углу захвата датчика вращающейся измерительной головки, захватившего точку, угол возвышения, соответствующий углу возвышения датчика, захватившего точку, и радиус, зависящий от расстояния до точки от начала координат;
- масштабирование декодированных сферических координат на основе смещений масштабирования, полученных из информации о смещениях масштабирования; и
- декодирование атрибутов текущей точки на основе масштабированных декодированных сферических координат.
11. Носитель данных, содержащий инструкции программного кода для исполнения способа кодирования облака точек в битовый поток кодированных данных облака точек, захваченного вращающейся измерительной головкой, при этом каждой точке в облаке точек соответствуют сферические координаты и по меньшей мере один атрибут, при этом упомянутые сферические координаты представляют азимутальный угол, соответствующий углу захвата датчика вращающейся измерительной головки, захватившего точку, угол возвышения, соответствующий углу возвышения датчика, захватившего точку, и радиус, зависящий от расстояния до точки от начала координат, при этом способ включает:
- сигнализацию, в битовом потоке, информации о смещениях масштабирования, представляющей смещения масштабирования;
для каждой текущей точки в облаке точек:
- кодирование сферических координат текущей точки и добавление кодированных сферических координат текущей точки в битовый поток;
- получение декодированных сферических координат путем декодирования кодированных сферических координат текущей точки;
- масштабирование декодированных сферических координат на основе смещений масштабирования; и
- кодирование по меньшей мере одного атрибута текущей точки на основе масштабированных декодированных сферических координат, и добавление по меньшей мере одного кодированного атрибута в битовый поток.
12. Носитель данных, содержащий инструкции программного кода для исполнения способа декодирования облака точек из битового потока кодированных данных облака точек, захваченного вращающейся измерительной головкой, при этом способ включает:
- доступ к информации о смещениях масштабирования из битового потока; для каждой текущей точки в облаке точек:
- получение декодированных сферических координат при помощи декодирования кодированных сферических координат текущей точки, полученных из битового потока, при этом сферические координаты текущей точки представляют азимутальный угол, соответствующий углу захвата датчика вращающейся измерительной головки, захватившего точку, угол возвышения, соответствующий углу возвышения датчика, захватившего точку, и радиус, зависящий от расстояния до точки от начала координат;
- масштабирование декодированных сферических координат на основе смещений масштабирования, полученных из информации о смещениях масштабирования; и
- декодирование атрибутов текущей точки на основе масштабированных декодированных сферических координат.
Станок для придания концам круглых радиаторных трубок шестигранного сечения | 1924 |
|
SU2019A1 |
CN 110533645 A, 03.12.2019 | |||
WO 20201411260 A1, 09.07.2020 | |||
Способ восстановления спиралей из вольфрамовой проволоки для электрических ламп накаливания, наполненных газом | 1924 |
|
SU2020A1 |
КОДИРОВАНИЕ/ДЕКОДИРОВАНИЕ ВИДЕО С ПОМОЩЬЮ ПОДМНОЖЕСТВ НАБОРА ОПОРНЫХ КАРТИНОК | 2012 |
|
RU2584510C2 |
КОДИРОВАНИЕ, ДЕКОДИРОВАНИЕ И ПРЕДСТАВЛЕНИЕ ИЗОБРАЖЕНИЙ С РАСШИРЕННЫМ ДИНАМИЧЕСКИМ ДИАПАЗОНОМ | 2012 |
|
RU2640717C1 |
КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ ПЕРЦЕПЦИОННО КВАНТОВАННОГО ВИДЕОСОДЕРЖИМОГО | 2015 |
|
RU2648634C1 |
Авторы
Даты
2024-12-09—Публикация
2022-04-23—Подача