СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ГЕОМЕТРИЧЕСКИХ ДАННЫХ ОБЛАКА ТОЧЕК, ОБНАРУЖЕННЫХ ПО МЕНЬШЕЙ МЕРЕ ОДНИМ ДАТЧИКОМ Российский патент 2025 года по МПК H04N19/70 

Описание патента на изобретение RU2839062C2

Перекрестные ссылки на связанные заявки

Настоящая заявка ссылается на приоритет заявки на Европейский патент №21306360.5, зарегистрированной 30 сентября 2021 года. При этом содержимое упомянутой заявки полностью включено в настоящий документ путем ссылки.

Область техники

Настоящая заявка относится, в общем, к сжатию облака точек, а именно, к способам и устройству для кодирования/декодирования геометрических данных облака точек, обнаруженных по меньшей мере одним датчиком.

Предпосылки создания изобретения

Данный раздел представляет читателю различные аспекты текущего уровня развития техники, которые могут иметь отношение к различным аспектам по меньшей мере одного из вариантов осуществления настоящего изобретения, описанных ниже и/или в приложенной формуле изобретения. Данное описание призвано сообщить читателю вводную информацию, облегчающую понимание различных аспектов настоящего изобретения.

В последнее время, в качестве одного из форматов представления трехмерных данных, облака точек приобретают все большую популярность благодаря их универсальности и способности представлять любые типы физических объектов и сцен. Облака точек могут применяться для различных задач, например, для объектов культурного наследия или зданий: статуи или здания сканируют и получают их трехмерное представление, позволяющее удаленно воспринимать пространственную конфигурацию объектов без их пересылки или посещения. Также, это может быть одним из способов сохранения знаний об объектах в случае их физического уничтожения, например, храм, который может быть уничтожен землетрясением. Подобные облака точек являются, как правило, статическими, имеют цветовую информацию и огромны по объему.

Еще одним сценарием применения облаков точек может быть топография и картография, когда трехмерное представление позволяет карте не быть ограниченной плоскостью и включать также рельеф. Хорошим примеров трехмерной карты является сервис Google Maps, однако в нем применяются сетки, а не облака точек. Тем не менее, облака точек подходят для применения в трехмерных картах, и такие облака точек являются, как правило, статическими, включают цветовую информацию и огромны по объему.

Виртуальная реальность (Virtual Reality, VR), дополненная реальность (Augmented Reality, AR) и технологии иммерсивного опыта в последнее время стали широко обсуждаемыми темами. Ожидается, что такие технологии придут на смену двумерному плоскому видео. Основная идея их заключается в погружении зрителя в окружающую среду, в отличие от обычного телевизора, дающего пользователям возможность лишь заглянуть в виртуальный мир, расположенный перед ними. Существуют различные степени иммерсивности, в зависимости от степеней свободы зрителя в окружении. Формат облаков точек являются многообещающим кандидатом для распространения VR/AR миров.

Еще одной сферой интенсивного применения облаков точек может быть автомобильная промышленность, а именно, беспилотные автомобили. Беспилотные автомобили должны уметь «зондировать» их окружение, чтобы принимать корректные решения при вождении на основе обнаруженного присутствия объектов, а также характера этих объектов и конфигурации дороги.

Облако точек представляет собой множество точек, расположенных в трехмерном (3D) пространстве. Опционально, к каждой из точек могут быть привязаны дополнительные значения. Такие дополнительные значения, как правило, называют атрибутами. Атрибутами могут быть, например, трехкомпонентный цвет, свойства материала, такие как отражающая способность, и/или двухкомпонентные векторы нормали, относящиеся к точке.

Облако точек, таким образом, представляет собой сочетание геометрических данных (местоположений точек в трехмерном пространстве, задаваемых, как правило, декартовыми координатами х, у и z) и атрибутов.

Облака точек могут формироваться при помощи устройств различных типов, например, массивов камер, датчиков глубины, лазеров (регистрирующих свет и измеряющих расстояния, также называемых лидарами), радарами, или могут формироваться при помощи компьютера (например, в послесъемочной обработке фильмов). В зависимости от сценария применения облака точек могут иметь от тысяч до миллиардов точек, в случае применения в картографии. В сыром, «необработанном», виде облака точек требуют очень большого количества бит на каждую точку, по меньшей мере 12 битов на каждую декартову координату х, у и z, и опционально, дополнительные биты для атрибутов, к примеру, три раза по 10 битов для цвета.

Во многих применениях важно либо иметь возможность доставлять облака точек конечному пользователю, либо хранить их на сервере, с использованием лишь ограниченного разумного битрейта или объема памяти, но с сохранением приемлемого (или, предпочтительно, очень высокого) качества восприятия. Чтобы транспортные сети для распределения множества иммерсивных миров могли быть реализованы на практике, критически важно иметь возможность эффективного сжатия облаков точек.

В случае доставки и визуализации у конечного пользователя, например, в AR/VR-очках или любых других устройств с 3D-функциями, такое сжатие может выполняться с потерями (аналогично видеосжатию). В других сценариях применения может требоваться сжатие без потерь, например, в медицине или беспилотных автомобилях, чтобы исключить влияние на решения, принимаемые при последующем анализе сжатых и переданных облаков точек.

До недавнего времени сжатие облаков точек (point cloud compression, РСС) не было востребовано на массовом потребительском рынке, и соответственно, не существовало стандартизированного кодека облаков точек. В 2017 году рабочая группа ISO/JCT1/SC29/WG11, также известная как «Группа экспертов по движущимся изображениям» (Moving Picture Experts Group, MPEG), инициировала работы по стандартизации сжатия облаков точек. В результате было предложено два стандарта, а именно:

- MPEG-I часть 5 (ISO/IEC 23090-5), или сжатие облаков точек на основе видео (Video-based Point Cloud Compression, V-PCC);

- MPEG-I часть 9 (ISO/IEC 23090-9), или сжатие облаков точек на основе геометрии (Geometry-based Point Cloud Compression, G-PCC).

В технологии кодирования V-PCC облако сжимают точек за счет выполнения множества проекций трехмерного объекта с получением двумерных участков (патчей), которые упаковывают в изображение (или видео, при работе с динамическими облаками точек). Полученные изображения или видео затем сжимают с помощью существующих кодеков изображений/видео, что позволяет применять уже развернутые решения для работы с изображениями и видео. По своей природе технология V-PCC эффективна только для плотных и непрерывных облаков точек, поскольку кодеки изображений/видео не способны сжимать негладкие участки, которые могут возникать, например, в результате проецирования зарегистрированных лидаром данных с рассеянной геометрией.

Метод G-PCC кодирования имеет две схемы сжатия зарегистрированных данных с рассеянной геометрией.

Первая схема основана на дереве занятости, которое может быть, локально, любым из следующих типов, представляющих геометрию облака точек: октадеревом, квадродеревом или бинарным деревом. Занятые узлы (т.е. узлы, соответствующие кубу/кубоиду, содержащему по меньшей мере одной точек облака точек) разбивают на подветви до тех пор, пока не будет достигнут заданный размер, и занятые листы дерева содержат местоположения точек в трехмерном пространстве, как правило, в центре этих узлов. Информацию о занятости передают при помощи данных занятости (двоичных данных или флага), сигнализирующих о состоянии занятости каждого из дочерних узлов любого узла. С помощью методов предсказания на основе соседей в случае плотных облаков точек может быть достигнут высокий уровень сжатия данных занятости. Рассеянные облака точек также могут быть обработаны, при помощи непосредственного кодирования положения точки в узле с не-минимальным размером, и остановки построения дерева, когда в узлах находятся только изолированные точки; такой метод называют методом прямого кодирования (Direct Coding Mode, DCM).

Вторая схема основана на дереве предсказания, в котором каждый узел представляет собой местоположение точки в трехмерном пространстве, а отношения родитель/потомок между узлами представляет собой пространственное предсказание от родителя к потомку. Такой метод подходит только для рассеянных облаков точек и выгодно отличается низкими задержками и более простым декодированием, по сравнению с деревом занятости. Однако достижимая эффективность сжатия лишь незначительно выше при сложном, по сравнению с методом на основе занятости, кодировании, поскольку при построении дерева предсказаний кодеру необходимо выполнять тщательный поиск наилучшего предсказания (по длинному списку потенциальных предсказаний).

В обеих схемах (де)кодирование атрибутов выполняют после полного (де)кодирования геометрии, что практически означает кодирование в два прохода. Таким образом, низкие задержки для комбинации геометрии и атрибутов могут быть достигнуты за счет применения слайсов, разбивающих трехмерное пространство на независимо кодируемые частичные объемы, без предсказания между частичными объемами. Это может оказывать сильное негативное влияние на эффективность сжатия, если количество используемых слайсов велико.

В существующих кодеках облаков точек до сих пор не удавалось решить задачу совмещения требований к простоте кодера и декодера, низких задержек и эффективности сжатия.

Одним из важных сценариев применения является передача рассеянных геометрических данных, обнаруженных по меньшей мере одним датчиком, установленным на движущемся автомобиле. Как правило, это требует наличия на борту автомобиля простого кодера с низкими задержками. Простота необходима, поскольку кодер, вероятно, будет развернут на вычислительных блоках, которые параллельно выполняют обработку и других данных, например, при (частично-) беспилотном вождении, что ограничивает вычислительную мощность, доступную для кодера облаков точек. Низкие задержки при этом требуются для обеспечения быстрой передачи из автомобиля в облачную среду для наблюдения за дорожным движением в реальном времени, основанном на данных, получаемых от множества автомобилей, чтобы принимать быстрые и адекватные решения на основе информации о движении. Задержки при передаче могут быть достаточно малыми при использовании технологии 5G, соответственно, сам кодер не должен вносить слишком большие задержи при кодировании. Эффективность сжатия также является крайней важной, поскольку поток данных от миллионов автомобилей, передаваемый в облачное окружение, может иметь огромный объем.

Некоторые из уже существующих технологий, относящиеся к рассеянным геометрическим данным, захваченным при помощи вращающегося лидара, были применены в методе G-PCC и позволили очень значительно повысить степень сжатия.

Во-первых, в методе G-PCC применяют угол возвышения (относительно горизонтальной поверхности земли) для регистрации вращающейся головкой 10 лидара, в соответствии с иллюстрацией фиг. 1 и фиг. 2. Головка 10 лидара содержит набор датчиков 11 (например, лазеры), причем в данном примере показаны пять датчиков. Вращающаяся головка 10 лидара может поворачиваться вокруг вертикальной оси z для регистрации геометрических данных физических объектов. Зарегистрированные лидаром геометрические данные затем представляют в сферических координатах (r3D,φ,θ), где r3D расстояние отточки Р до центра головки лидара, φ - азимутальный угол поворота головки лидара относительно начала координат, а θ - угол возвышения датчика к в головке лидара относительно опорной горизонтальной плоскости.

На фиг. 3 показано равномерное распределение по азимутальному углу, наблюдаемое в зарегистрированных лидаром данных. Упомянутая равномерность используется в методе G-PCC для получения квази-одномерного представления облака точек, в котором, с точностью до шума, только радиус r3D принадлежит непрерывному диапазону значений, тогда как углы φ и θ принимают только набор дискретных значений φi до I-1, где I количество азимутальных углов, используемых для регистрации точек, and до J-1, где K количество датчиков во вращающейся лидарной головке 10.

Фактически, в технологии G-PCC рассеянные геометрические данные, зарегистрированные лидаром, представляют на двумерной плоскости дискретных углов (φ, θ), в соответствии с иллюстрацией фиг. 3, вместе со значением радиуса r3D для каждой точки. Это свойство квази-одномерности используют в G-PCC, и в дереве занятости, и в дереве предсказания, при помощи предсказания, в пространстве сферических координат, местоположения текущей точки на основе уже кодированной точки, с использованием дискретного характера углов.

А именно в дереве занятости интенсивно применяют DCM и энтропийно кодируют непосредственные местоположения точек в узле с помощью контекстно-адаптивного энтропийного кодера. Контексты затем получают за счет локального преобразования местоположений точек в угловые координаты (φ, θ) и на основе местоположения этих угловых координат относительно дискретных угловых координат (φ; θj) полученных из ранее кодированных точек. В дереве предсказания непосредственно кодируют первую версию местоположения точки в угловых координатах (r2D, φ, θj), где r2D - проекция радиуса на горизонтальную ось ху, в соответствии с иллюстрацией, с использованием квазиодномерного характера (r2D, этого пространства угловых координат.Затем сферические координаты (r2D, φ, θ) преобразуют в трехмерные декартовы координаты (х, у, z), и ошибку xyz кодируют для компенсации погрешностей при преобразовании координат, аппроксимации угла возвышения и азимутального угла, а также возможного шума.

В G-PCC используют существующие технологии для работы с угловыми координатами для более эффективного кодирования рассеянных геометрических данных, регистрируемых при помощи лидара, однако не адаптируют структуру кодирования к последовательности измерений. В силу своих свойств дерево занятости должно быть кодировано до своей максимальной глубины, прежде чем может быть выдано значение хотя бы одной точки. Данные занятости кодируют в порядке «сначала вширину»: сначала кодируют данные занятости корневого узла, и указывают его занятые дочерние узлы; затем кодируют данные занятости для каждого из занятых дочерних узлов, и указывают занятые внучатые узлы; и так далее по всей глубине дерева, пока не будут определены листовые узлы, и соответствующие точки будут переданы/выведены в приложение или в схему кодирования атрибутов. В дереве предсказания кодер свободен выбирать, как именно точки будут упорядочены в деревья, однако для высокой эффективности сжатия и оптимизации точности предсказания в стандарте G-PCC предложено кодирование по одному дереву для каждого датчика. Такой способ имеет тот же недостаток, что и использование одного слайса кодирования на каждый датчик, то есть, неоптимальную эффективность датчиков, поскольку предсказание между различными датчиками не возможно, и не позволяет обеспечить низкие задержки в кодере. Что еще хуже, необходимо иметь отдельный процесс кодирования на каждый датчик, и количество базовых блоков кодирования должно быть равно количеству датчиков, а это непрактично.

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

При этом регистрация геометрических данных рассеянного облака точек при помощи вращающейся измерительной головки имеет свои недостатки, и могут применяться другие типы измерительных головок.

Механические детали, обеспечивающие вращение (поворот) вращающейся измерительной головки являются дорогостоящими и подвержены отказам. Также, из-за конструктивных особенностей, угол зрения всегда равен 2π. Это не позволяет регистрировать выделенные области интереса с повышенной частотой. К примеру, измерения спереди автомобиля могут представлять больший интерес, чем сзади. На практике в большинстве случае, когда датчики устанавливают на автомобиль, большая часть из угла зрения, равного 2π, заслонена собственно автомобилем, и эту часть угла зрения регистрировать нет необходимости.

Недавно появились новые типы датчиков, допускающие более гибкий выбор измеряемой области. В наиболее современных системах датчик может перемещаться более гибко, и при помощи электронных средств (что позволяет избежать ломких механических деталей), что позволяет получать множество разнообразных путей измерения в трехмерной сцене, в соответствии с иллюстрацией фиг. 5. На фиг. 5 показан набор из четырех датчиков. Соответствующие им направления измерений, т.е. азимутальный угол и угол возвышения, зафиксированы относительно друг друга, однако они в целом могут регистрировать сцену, следуя программируемому пути измерения, показанному штриховой линией в двумерном пространстве угловых координат (φ, θ). Затем точки облака точек могут регистрироваться равномерно вдоль пути измерения. Некоторые измерительные головки могут также адаптировать свою частоту измерений, повышая ее, если обнаружена область R интереса, в соответствии с иллюстрацией фиг. 6. Область R интереса может соответствовать близкому объекту, движущемуся объекту или любому другом объекту (пешеходу, другому автомобилю и т.п.), который ранее был измерен лишь частично (сегментирован), например, в предыдущем кадре, или из-за движения во время измерений. На фиг. 7 схематично показан еще один пример пути измерения (типовой зигзагообразный путь измерения), применяемый в измерительной головке, которая содержит два датчика, способных повышать частоту измерения, когда обнаружена область интереса (закрашенные или заштрихованные серым кружки). Зигзагообразный путь измерения, предпочтительно, используют для регистрации ограниченного (азимутального) углового сектора трехмерной сцены. Поскольку датчики могут быть установлены на автомобиле, их области зрения, представляющие интерес, по необходимости ограничены присутствием самого автомобиля, который заслоняет сцену, если только эти датчики не размещены на крыше автомобиля. Следовательно, датчики с ограниченным угловым сектором измерений имеют высокий потенциал применения, и их проще интегрировать в автомобиль.

В соответствии с иллюстрацией фиг. 8 может также применяться измерительная головка, имеющая один датчик, для измерения множества местоположений (два вертикальных местоположения на фиг. 8), к примеру, с помощью отражений в зеркалах, колеблющихся вращательно (в данном случае с вертикальным поворотом). В таком случае вместо применения набора датчиков используют один датчик в различных угловых положениях (т.е. с различным углом возвышения на фиг. 8) вдоль пути измерения (в данном случае, зигзагообразного пути измерения), что имитирует измерения с использованием набора из множества датчиков.

Для простоты в приведенном ниже описании и в формуле изобретения под «измерительной головкой» понимают набор физических датчиков или также набор индексов угла возвышения для измерений, которые используют для имитации набора датчиков. Специалисты в данной области техники должны понимать, что под «датчиками» может также пониматься один датчик в различных положениях с различными индексами угла возвышения.

В существующих кодеках облаков точек до сих пор не удавалось решить задачу совмещения требований к простоте кодера и декодера, низких задержек и эффективности сжатия облаков точек, регистрируемых при помощи любых типов датчиков.

В соответствии с описанной задачей был предложен по меньшей мере вариант осуществления настоящего изобретения.

Сущность изобретения

В данном разделе представлено упрощенное общее описание по меньшей мере одного варианта осуществления настоящего изобретения, чтобы дать базовое понимание некоторых из его аспектов. Данный раздел не является исчерпывающим описанием одного из вариантов осуществления настоящего изобретения. Он не имеет целью указать на ключевые или критически важные элементы вариантов осуществления настоящего изобретения. В данном разделе лишь представлены некоторые из аспектов по меньшей мере одного из вариантов осуществления настоящего изобретения, в упрощенной форме, в качестве введения к более подробному описанию, приведенному в ином разделе данного документа.

В соответствии с первым аспектом настоящего изобретения предложен способ кодирования, в битовый поток, геометрических данных облака точек, представленных упорядоченными «грубыми» точками, занимающими часть дискретных местоположений из множества дискретных местоположений двумерного пространства, при этом упомянутые грубые точки упорядочены в лексикографическом порядке по их координатам в двумерном пространстве, при этом способ включает кодирование, в битовый поток, данных, указывающих, является ли занятая грубая точка, соответствующая точке облака точек, запаздывающей занятой грубой точкой, при этом занятую грубую точку считают запаздывающей занятой грубой точкой, если ее порядковый индекс в лексикографическом порядке меньше, чем порядковый индекс первой опорной грубой точки, соответствующей ранее кодированной точке облака точек; если упомянутые данные указывают на то, что занятая грубая точка является запаздывающей занятой грубой точкой, получение разности порядковых индексов для запаздывающей точки, между порядковым индексом запаздывающей занятой грубой точки и порядковым индексом второй опорной грубой точки; и кодирование, в битовый поток, модуля разности порядковых индексов для запаздывающей точки.

В соответствии со вторым аспектом настоящего изобретения предложен способ декодирования, из битового потока, геометрических данных облака точек, представленных упорядоченными грубыми точками, занимающими часть дискретных местоположений из множества дискретных местоположений двумерного пространства, при этом упомянутые грубые точки упорядочены в лексикографическом порядке по их координатам в двумерном пространстве, при этом способ включает декодирование, из битового потока, данных, указывающих, является ли занятая грубая точка, соответствующая точке облака точек, запаздывающей занятой грубой точкой, при этом занятую грубую точку считают запаздывающей занятой грубой точкой, если ее порядковый индекс в лексикографическом порядке меньше, чем порядковый индекс первой опорной грубой точки, соответствующей ранее декодированной точке облака точек; и если упомянутые данные указывают на то, что занятая грубая точка является запаздывающей занятой грубой точкой, декодирование, из битового потока, модуля разности порядковых индексов для запаздывающей точки, между порядковым индексом запаздывающей занятой грубой точки и порядковым индексом второй опорной грубой точки.

В некоторых из вариантов осуществления настоящего изобретения упомянутая первая опорная грубая точка может быть последней кодированной или декодированной занятой грубой точкой, или ранее кодированной или декодированной грубой точкой с наивысшим порядковым номером в лексикографическом порядке, при этом упомянутая вторая опорная грубая точка может быть либо первой опорной грубой точкой, либо грубой точкой, порядковый номер которой равен порядковому номеру первой опорной грубой точки, сдвинутому на величину смещения.

В некоторых из вариантов осуществления настоящего изобретения упомянутые данные могут быть двоичными данными, указывающими, является ли занятая грубая точка, соответствующая точке облака точек, запаздывающей занятой грубой точкой, и могут быть энтропийно кодированы или декодированы на основе по меньшей мере одних других двоичных данных, указывающих, является ли по меньшей мере одна ранее кодированная или декодированная грубая точка запаздывающей грубой точкой.

В некоторых из вариантов осуществления настоящего изобретения модуль разности порядковых индексов может быть кодирован при помощи кодирования, в битовый поток, или декодирован при помощи декодирования, из битового потока, двух положительных смещений, соответствующих координатам в двумерном пространстве.

В некоторых из вариантов осуществления настоящего изобретения кодирование или декодирование одного из упомянутых положительных смещений может включать кодирование или декодирование первого положительного значения и второго положительного значения, сумма которых равна упомянутому положительному смещению.

В некоторых из вариантов осуществления настоящего изобретения кодирование или декодирование первого или второго положительных значений может включать энтропийное кодирование или декодирование последовательности двоичных данных, являющихся представлением упомянутых первого или второго положительных значений.

В некоторых из вариантов осуществления настоящего изобретения кодирование или декодирование упомянутого другого положительного смещения может включать энтропийное кодирование или декодирование последовательности двоичных данных, являющихся представлением упомянутого другого положительного смещения.

В соответствии с третьим аспектом настоящего изобретения предложено устройство кодирования, в битовый поток, геометрических данных облака точек, представленных упорядоченными грубыми точками, занимающими часть дискретных местоположений из множества дискретных местоположений двумерного пространства. Устройство включает один или более процессоров, сконфигурированных для выполнения способа, соответствующего первому аспекту настоящего изобретения.

В соответствии с четвертым аспектом настоящего изобретения предложено устройство декодирования, из битового потока, геометрических данных облака точек, представленных упорядоченными грубыми точками, занимающими часть дискретных местоположений из множества дискретных местоположений двумерного пространства. Устройство включает один или более процессоров, сконфигурированных для выполнения способа, соответствующего второму аспекту настоящего изобретения.

В соответствии с пятым аспектом настоящего изобретения предложен битовый поток кодированных данных облака точек, представляющих геометрию облака точек, которая представлена упорядоченными грубыми точками, занимающими часть дискретных местоположений из множества дискретных местоположений двумерного пространства, при этом упомянутые грубые точки упорядочены в лексикографическом порядке по их координатам в двумерном пространстве, при этом битовый поток дополнительно включает данные, указывающие, является ли занятая грубая точка, соответствующая точке облака точек, запаздывающей занятой грубой точкой, при этом занятую грубую точку считают запаздывающей занятой грубой точкой, если ее порядковый индекс в лексикографическом порядке меньше, чем порядковый индекс первой опорной грубой точки, соответствующей ранее кодированной точке облака точек.

В соответствии с шестым аспектом настоящего изобретения предложен компьютерный программный продукт, включающий инструкции, которые при исполнении программы одним или более процессорами обеспечивают выполнение, одним или более процессорами, способа в соответствии с первым аспектом настоящего изобретения.

В соответствии с седьмым аспектом настоящего изобретения предложен носитель данных, содержащий инструкции программного кода для выполнения способа в соответствии с первым аспектом настоящего изобретения.

В соответствии с восьмым аспектом настоящего изобретения предложен компьютерный программный продукт, включающий инструкции, которые при исполнении программы одним или более процессорами обеспечивают выполнение, одним или более процессорами, способа в соответствии со вторым аспектом настоящего изобретения.

В соответствии с девятым аспектом настоящего изобретения предложен носитель данных, содержащий инструкции программного кода для выполнения способа в соответствии со вторым аспектом настоящего изобретения.

Особенности по меньшей мере одного из вариантов осуществления настоящего изобретения, а также другие цели, преимущества, признаки и возможные применения упомянутого по меньшей мере одного из вариантов осуществления настоящего изобретения могут быть уяснены из приведенного ниже описания примеров, рассматриваемых в сочетании с приложенными чертежами.

Краткое описание чертежей

Далее для иллюстрации рассмотрим приложенные чертежи, где показаны варианты осуществления настоящего изобретения.

На фиг. 1 схематично проиллюстрирован вид сбоку измерительной головки и некоторые из ее параметров, в соответствии с существующим уровнем техники.

На фиг. 2 схематично проиллюстрирован вид сверху измерительной головки и некоторые из ее параметров, в соответствии с существующим уровнем техники.

На фиг. 3 схематично проиллюстрировано равномерное распределение данных, регистрируемых вращающейся измерительной головкой, в соответствии с существующим уровнем техники.

На фиг. 4 схематично проиллюстрировано представление точки облака точек в трехмерном пространстве в соответствии с существующим уровнем техники.

На фиг. 5 схематично проиллюстрирован пример измерительной головки, способной регистрировать реальную сцену, следуя программируемому пути измерений в соответствии с существующим уровнем техники.

На фиг. 6 схематично проиллюстрирован пример измерительной головки, способной регистрировать реальную сцену, следуя программируемому пути измерений и с использованием различных частот измерения, в соответствии с существующим уровнем техники.

На фиг. 7 схематично проиллюстрирован пример измерительной головки, способной регистрировать реальную сцену, следуя программируемому зигзагообразному пути измерений и с использованием различных частот измерения, в соответствии с существующим уровнем техники.

На фиг. 8 схематично проиллюстрирован пример измерительной головки с одним датчиком, способной регистрировать реальную сцену, следуя программируемому зигзагообразному пути измерений и с использованием различных частот измерения, в соответствии с существующим уровнем техники.

На фиг. 9 схематично проиллюстрирован пример упорядоченных грубых точек, являющихся частью грубого представления, в соответствии по меньшей мере с одним из вариантов осуществления настоящего изобретения.

На фиг. 10 схематично проиллюстрирован пример упорядоченных грубых точек, являющихся частью грубого представления, зарегистрированных при помощи головки с двумя датчиками, в соответствии по меньшей мере с одним из вариантов осуществления настоящего изобретения.

На фиг. 11 схематично показано представление упорядоченных грубых точек в пространстве двумерных координат (s, λ).

На фиг. 12 схематично проиллюстрированы упорядоченные грубые точки, являющиеся частью грубого представления, в соответствии по меньшей мере с одним из вариантов осуществления настоящего изобретения.

На фиг. 13 схематично проиллюстрирована блок-схема алгоритма, где показаны шаги способа 100 кодирования геометрических данных облака точек в битовый поток кодированных данных облака точек в соответствии по меньшей мере с одним вариантом осуществления настоящего изобретения.

На фиг. 14 схематично проиллюстрирована блок-схема алгоритма для способа 200 декодирования геометрических данных облака точек из битового потока кодированных данных облака точек в соответствии по меньшей мере с одним вариантом осуществления настоящего изобретения.

На фиг. 15 схематично проиллюстрирована блок-схема алгоритма контекстно-адаптивного двоичного арифметического кодера в соответствии по меньшей мере с одним из вариантов осуществления настоящего изобретения.

На фиг. 16 схематично проиллюстрирована блок-схема алгоритма для шага 140 способа 100 и шага 230 способа 200 в соответствии по меньшей мере с одним из вариантов осуществления настоящего изобретения.

На фиг. 17 схематично проиллюстрирована блок-схема алгоритма для шага 140 способа 100 и шага 230 способа 200 в соответствии по меньшей мере с одним из вариантов осуществления настоящего изобретения.

На фиг. 18 показан пример определения первого положительного смещения и положительного значения, когда следующая занятая грубая точка и опорная занятая грубая точка имеют различные порядковые индексы отсчета, в соответствии по меньшей мере с одним из вариантов осуществления настоящего изобретения.

На фиг. 19 показан пример определения первого положительного смещения и положительного значения, когда следующая занятая грубая точка и опорная занятая грубая точка имеют одинаковые порядковые индексы отсчета, в соответствии по меньшей мере с одним из вариантов осуществления настоящего изобретения.

На фиг. 20 показан пример определения первого положительного смещения и положительного значения, когда следующая занятая грубая точка и опорная занятая грубая точка имеют различные порядковые индексы отсчета, в соответствии по меньшей мере с одним из вариантов осуществления настоящего изобретения.

На фиг. 21 показана структурная схема одного из примеров системы, в которой могут быть реализованы различные аспекты и варианты осуществления настоящего изобретения.

На различных чертежах аналогичные числовые обозначения могут обозначать аналогичные компоненты.

Подробное описание изобретения

Ниже будет более полно описан по меньшей мере один из вариантов осуществления настоящего изобретения, со ссылками на приложенные чертежи, на которых проиллюстрирован по меньшей мере один из вариантов осуществления настоящего изобретения. Однако варианты осуществления настоящего изобретения могут быть реализованы во множестве альтернативных форм, и их не следует считать ограниченными приведенными здесь иллюстрациями. Соответственно, нужно понимать, что варианты осуществления настоящего изобретения не следует считать ограниченными конкретными описанными формами. Напротив, настоящее описание подразумевает, что в сущность и объем настоящего изобретения входят также все соответствующие модификации, эквиваленты и альтернативы.

По меньшей мере один из аспектов настоящего изобретения относится, в общем, к кодированию и декодированию облака точек, еще один из аспектов настоящего изобретения относится, в общем, к передаче сформированного или кодированного битового потока, и еще один из аспектов настоящего изобретения относится к приему декодированного битового потока, или к доступу к декодированному битовому потоку.

При этом рассмотренные здесь аспекты настоящего изобретения не ограничены стандартами MPEG, например, частью 5 или частью 9 стандарта MPEG-I, относящегося к сжатию облаков точек, и могут применяться, к примеру, в других стандартах или рекомендациях, как существующих, так и будущих, а также в расширениях любых из подобных стандартов и рекомендаций (включая часть 5 и часть 9 MPEG-I). Если на обратное не указано прямо, или если для этого нет технических препятствий, аспекты, рассмотренные в настоящей заявке, могут применяться как по отдельности, так и совместно.

Настоящее изобретение относится к кодированию/декодированию геометрических данных облака точек, представленных упорядоченными грубыми точками, соответствующими грубому представлению (coarse representation) и занимающими часть дискретных местоположений из множества дискретных местоположений двумерного пространства.

К примеру, рабочая группа ISO/IEC JTC 1/SC 29/WG 7 по кодированию трехмерной графики предложила новый кодек, названный L3C2 (кодек низкой сложности с низкими задержками, Low-Latency Low-Complexity Codec), который был призван обеспечить улучшенную, по сравнению с кодеком G-PCC, эффективность кодирования облаков точек, регистрируемых при помощи лидаров. Кодек L3C2 позволяет получить пример двумерного представления точек в облаке точек, а именно, грубое представление. Описание этого кодека может быть найдено в результирующем документе Рабочей группы N00167, ISO/IEC JTC 1/SC 29/WG 7, кодирование трехмерной графики MPEG, "Технологии, рассматриваемые для G-PCC", 31 августа 2021 года (N00167, ISO/IEC JTC 1/SC 29/WG 7, MPEG 3D Graphics Coding, "Technologies under Consideration in G-PCC").

В сущности, для каждой точки Pn в облаке точек получают индекс λn датчика, относящийся к датчику, зарегистрировавшему точку Pn и азимутальный угол φn, представляющий собой угол измерения упомянутого датчика, при помощи преобразования трехмерных декартовых координат (xn, yn, zn), представляющих местоположение измеренной точки Pn в трехмерном пространстве. Точки облака точек затем упорядочивают на основе азимутальных углов φn и индексов λn датчиков, например, сначала по индексу датчика и затем по азимутальному углу. Порядковый индекс о(Pn) точки Pn затем получают следующим образом:

где K - количество датчиков.

На фиг. 9 схематично проиллюстрированы упорядоченные грубые точки, являющиеся частью грубого представления. Были зарегистрированы пять точек облака точек. Каждая из этих пяти точек приблизительно представлена грубой точкой (закрашены черным) грубого представления: две грубые точки Pn и Pn+1 представляют собой две точки облака точек, измеренные в момент времени t1 с азимутальным углом φс (из углов φi), а три остальные грубые точки представляют три точки облака точек, измеренные в момент времени t2 с азимутальным углом фс+Δφ. Грубую точку, которая представляет зарегистрированную точку облака точек, называют «занятой грубой точкой», а грубую точку, которая не представляет зарегистрированную точку облака точек, называют «незанятой грубой точкой». Поскольку точки в облаке точек представлены занятыми грубыми точками грубого представления, порядковые индексы, относящиеся к точкам в облаке точек, также являются порядковыми индексами, соответствующим занятым грубым точкам.

Грубое представление геометрических данных облака точек может в этом случае быть задано в пространстве двумерных координат (φ, λ).

Грубое представление может быть также определено для любых типов измерительных головок, включая вращающуюся (поворотную) и невращающуюся измерительные головки. Его определение зависит от пути измерения, определяемого на основе характеристик датчика в пространстве двумерных угловых координат (φ,θ), включающим азимутальную координату φ, представляющую собой азимутальный угол, который является углом измерения датчика относительно начала координат, и координату 6 возвышения, представляющую собой угол возвышения датчика относительно горизонтальной опорной плоскости. Путь измерения используют для регистрации точек облака точек в соответствии с упорядоченными грубыми точками, представляющими потенциальные местоположения зарегистрированных точек облака точек. Каждую грубую точку определяют на основе одного индекса s отсчета, соответствующего моменту времени измерения вдоль пути измерения, и одного индекса λ датчика, соответствующего датчику.

На фиг. 10 применяют измерительную головку, имеющую два датчика. Измерительные пути, которым следуют два датчика, показаны штриховыми линиями. Для каждого индекса s отчета (каждого момента времени измерения) заданы две грубые точки. Грубые точки, относящиеся к первому датчику, показаны на фиг. 10 закрашенными черными кружками, а грубые точки, относящиеся ко второму датчику, кружками с черной штриховкой. Каждая из этих двух точек принадлежит пути измерения датчика (штриховая линия), заданному на основе пути SP измерения. На фиг. 11 схематично показано представление упорядоченных грубых точек в пространстве двумерных координат (s, λ). Стрелками на фиг. 10 и 11 показаны линии соединения между двумя последовательными упорядоченными грубыми точками.

Порядковый индекс о(Р) поставлен в соответствии каждой грубой точке согласно положению этой грубой точки среди остальных упорядоченных грубых точек:

где K - количество датчиков в наборе датчиков или количество различных положений одного датчика с одним и тем же индексом отсчета, λ порядковый индекс датчика, который зарегистрировал точку Р облака точек в момент s времени измерения.

На фиг. 12 показаны упорядоченные грубые точки грубого представления, причем показаны пять занятых грубых точек (закрашенные черным кружки): две грубые точки Pn и Pn+1 заняты двумя точками облака точек, зарегистрированными в момент t1 времени измерения (соответствует индексу s1 отсчета), и три грубые точки заняты тремя точками облака точек, зарегистрированными в момент t2 времени измерения (соответствует индексу s2 отсчета).

Грубое представление геометрических данных облака точек может в этом случае быть задано в пространстве двумерных координат (s, λ).

Независимо от двумерного пространства, в котором задано грубое представление геометрических данных облака точек, кодирование геометрических данных облака точек включает кодирование данных занятости занятых грубых точек грубого представления при помощи кодирования разностей Δо порядковых индексов, каждая из которых отражает разность между порядковыми индексами двух последовательных занятых грубых точек P-1 и Р:

На фиг. 9, если допустить, что координаты первой занятой грубой точки Pn в пространстве двумерных координат (φ, λ) известны заранее, первую разность Δon+1 порядковых индексов получают как разность между порядковым индексом o(Pn+1), относящимся к занятой грубой точке Pn+1, и порядковым индексом о(Pn), соответствующим занятой грубой точке Pn. Вторую разность Δon+2 порядковых индексов получают как разность между порядковым индексом о(Pn+2), относящимся к другой занятой грубой точке Pn+2, и порядковым индексом o(Pn+1), соответствующим Pn+1, и т.п.

На фиг. 12, если допустить, что координаты первой занятой грубой точки Pn в пространстве двумерных координат (s, λ) известны заранее, первую разность ΔOn+1 порядковых индексов получают как разность между порядковым индексом o(Pn+1), относящимся к занятой грубой точке Pn+1, и порядковым индексом о(Pn), соответствующим занятой грубой точке Pn. В данном примере Δon+1=2, поскольку грубая точка не занята (пустой кружок). Вторую разность Δon+2 порядковых индексов получают как разность между порядковым индексом о(Pn+2), относящимся к другой занятой грубой точке Pn+2, и порядковым индексом o(Pn+1) занятой грубой точки Pn+1, и т.п.

Порядковый индекс o(P1) первой грубой точки, занятой первой зарегистрированной точкой P1 облака точек, может непосредственно кодироваться в битовый поток. Это эквивалентно произвольному назначению нулевого значения порядковому индексу виртуальной нулевой точки, т.е. о(Р0)=0, при этом кодирование Δo1=o(P1)-о(Р0)=o(P1)

Если известен порядковый индекс o(P1) первой грубой точки, занятой первой зарегистрированной точкой P1 облака точек, и разности Δо порядковых индексов, т можно рекурсивно восстановить порядковый индекс о(Р) любой занятой грубой точки, занятой зарегистрированной точкой Р облака точек, при помощи следующего выражения:

о(Р)=o(P-1)+Δо

Ниже настоящее изобретение будет описано, главным образом, на примере рассмотрения грубого представления, заданного в пространстве двумерных координат (s, λ). Однако то же самое может быть описано для грубого представления, заданного в пространстве двумерных координат (φ, λ), поскольку вращающаяся измерительная головка, например, лидарная головка, представляет конкретное грубое представление, заданное в пространстве двумерных координат (s, λ), в котором в каждый момент времени датчики измерительной головки измеряют объект, а зарегистрированные точки соответствуют занятым точкам грубого представления.

На практике разности Δо порядковых индексов как правило имеют положительные значения, поскольку порядок регистрации точек облака точек совпадает с лексикографическим порядком соответствующих занятых грубых точек грубого представления.

Однако иногда некоторые из точек облака точек, регистрируемые согласно порядку измерения, не в точности следуют лексикографическому порядку занятых грубых точек, соответствующих этим регистрируемым точкам. Такие точки называют «запаздывающими» занятыми грубыми точками.

К примеру, если грубое представление задано в пространстве двумерных координат (φ, λ), азимутальный угол фс занятой грубой точки грубого представления, заданного двумерными координатами (φ, λ), получают как фс=round(φ/Δф), где φ - азимутальный угол, соответствующий зарегистрированной точке облака точек, которая относится к занятой грубой точке, а Δф - азимутальное смещение. Вследствие округления отношения фактического азимутального угла φ к азимутальному смещению Δφ азимутальный угол φс может быть как минимум на 1 меньше ожидаемого значения грубого представления, согласно лексикографическому порядку, если значение φ содержит аддитивный шум, меньший или равный -Δφ/2; или как минимум на 1 больше, если аддитивный шум больше или равен Δφ 12.

В грубом представлении, заданном в пространстве двумерных координат (s, λ), точки облака точек, зарегистрированные в заданном порядке измерений, могут также не в точности следовать лексикографическому порядку занятых грубых точек, соответствующих этим регистрируемым точкам, поскольку шум в регистрируемых точках может приводить к тому, что последовательность зарегистрированных точек будет иметь неувеличивающуюся последовательность порядковых индексов координаты s.

Лексикографический порядок, используемый для упорядочивания грубых точек в грубом представлении, на практике может также быть не вполне пригоден для систем, в которых измерительная головка передает данные в одну или более функциональных подсистем (например, в кодер и/или во встроенный анализатор данных) по шине или каналу передачи, подверженным ошибками передачи (из-за коллизий передачи или из-за электромагнитных помех). В таких системах, как правило, если обнаруживают ошибку передачи, то данные измерений, переданные измерительной головкой, передают повторно. Однако в это время могут быть уже переданы другие измерительные данные, которые поступят ранее повторной передачи предыдущих данных.

Для таких двух сценариев практического применения порядок зарегистрированных точек облака точек, поступающих на вход кодера, не всегда будет соответствовать ожидаемому лексикографическому порядку.

Чтобы решить проблему запаздывающих занятых грубых точек, можно буферизовать зарегистрированные точки, принимаемые кодером. Буферизация зарегистрированных точек позволяет их переупорядочивать и исправлять несоответствие между порядком измерений (или порядком приема) и лексикографическим порядком. Однако буферизация регистрируемых точек не всегда является приемлемым решением, поскольку требуемый размер буфера может становиться очень большим (больше, чем это реализуемо на практике), чтобы была возможность корректировать максимально возможное расхождение между порядком измерения и лексикографическим порядком, в особенности, если уровень искажений (шума и/или задержек из-за повторных передач) велик.

При этом, если буферизованные зарегистрированные точки будут переданы в кодер слишком рано, до того как поступят запаздывающие кодированные перед ними точки, то сделать уже ничего будет нельзя: зарегистрированные точки придется отбросить (т.е. запаздывающие занятые грубые точки будут утеряны), поскольку уже не будет возможности их кодировать.

Оценить максимальный размер буфера заранее невозможно, поскольку он зависит от максимального расхождения между порядком измерения и лексикографическим порядком, который может быть разным в каждой применяемой системе. В особенности это верно для систем, подверженных ошибкам передачи, где в наихудшем возможном случае может понадобиться повторно передавать некоторые из зарегистрированных точек несколько раз, прежде чем передача будет успешной, поэтому часть зарегистрированных точек может быть потеряна из-за слишком большого опоздания или из-за превышения размера буфера. Чтобы решить эту проблему максимальный размер буфера можно выбирать заведомо завышенным, однако это ведет к нерациональному расходу ресурсов.

При этом одним из требований является обеспечение кодирования/декодирования геометрических данных облака точек со сверхнизкими задержками. Это несовместимо с решением, где применяют переупорядочивание зарегистрированных точек при помощи буферизации, поскольку в этом случае вводится недопустимо высокая задержка перед кодированием.

Одной из задач, требующих решения, является обеспечение кодирования/декодирования запаздывающих занятых грубых точек, соответствующих зарегистрированным точкам облака точек, относительно лексикографического порядка занятых грубых точек, заданных в грубом представлении, с сохранением низких задержек при кодировании точек облака точек и без значительного снижения эффективности кодирования, достижимых в идеальном сценарии применения, где все зарегистрированные точки упорядочены корректно.

Местоположения занятых грубых точек, соответствующих зарегистрированным точкам, представлены как дискретные местоположения на сетке в двумерном пространстве. Сетка имеет строки и столбцы, при этом каждая занятая грубая точка принадлежит пересечению столбца и строки упомянутой сетки. Каждому индексу X датчика соответствует одна строка, и каждому индексу s отсчета соответствует один столбец. В случае, когда s соответствует углу, простым решением описанной выше задачи могло бы быть добавление множества пустых столбцов после текущей занятой грубой точки с целью восстановления запаздывающей занятой грубой точки за счет добавления «фиктивного» пустого оборота (т.е. восстановление угла для практически полного оборота, вплоть до угла, соответствующего запаздывающей занятой грубой точке). Это является рабочим решением в том смысле, что все точки, включая запаздывающие занятые грубые точки, могут быть кодированы/декодированы. Однако затраты на кодирование/декодирование пустых столбцов ставят под вопрос эффективность сжатия при кодировании/декодировании.

Итак, в настоящем изобретении предложен способ кодирования, в битовый поток, геометрических данных облака точек, представленных упорядоченными грубыми точками, занимающими часть дискретных местоположений из множества дискретных местоположений двумерного пространства. Упорядоченные грубые точки имеют лексикографический порядок в соответствии с координатами в двумерном пространстве.

Геометрию облака точек кодируют в битовый поток при помощи кодирования занятых грубых точек, представляющих упомянутые точки облака точек в грубом представлении, заданном в двумерном пространстве. Каждую следующую занятую грубую точку Pnext, соответствующую точке в облаке точек, кодируют, друг за другом, с учетом первой опорной грубой точки Pref, соответствующей ранее кодированной точке облака точек. Порядковые индексы o(Pnext) и o(Pref) определяют с помощью уравнения 1 или 2, т.е. в соответствии с лексикографическим порядком.

Разность Δо порядковых индексов получают при помощи следующего выражения:

Здесь порядковый индекс o(Pnext) больше, чем (Pref), при этом следующая занятая грубая точка Pnext считается не запаздывающей занятой грубой точкой, и разность Δо порядковых индексов является положительной.

Когда порядковый индекс o(Pnext) меньше o(Pref), следующая занятая грубая точка Pnext считается запаздывающей занятой грубой точкой, и разность Δо порядковых индексов является отрицательной.

Данные Snext, указывающие, является ли следующая занятая грубая точка Pnext запаздывающей занятой грубой точкой, кодируют в битовый поток.

Кодирование данных Snext, указывающих, является ли следующая занятая грубая точка Pnext запаздывающей занятой грубой точкой, эквивалентно кодированию значка разности Δо порядковых индексов.

Если данные Snext указывают на то, что знак разности Δо порядковых индексов является положительным, разность Δо порядковых индексов кодируют в битовый поток.

Если данные Snext указывают на то, что занятая грубая точка является запаздывающей занятой грубой точкой Pnext, получают разность Δolate порядковых индексов для запаздывающей точки между порядковым индексом o(Pnext) и порядковым индексом второй опорной грубой точки P'ref, и модуль разности порядковых индексов кодируют в битовый поток.

Таким образом, в данном методе предложено очень простое решение задачи кодирования/декодирования запаздывающих занятых грубых точек с сохранением низких задержек при кодировании точек облака точек.

При этом, в соответствии с приведенным ниже описанием, кодирование данных Snext лишь незначительно снижает эффективность кодирования по сравнению с идеальным случаем, в котором все зарегистрированные точки упорядочены корректно.

На фиг. 13 схематично проиллюстрирована блок-схема алгоритма, где показаны шаги способа 100 кодирования геометрических данных облака точек в битовый поток кодированных данных облака точек в соответствии по меньшей мере с одним вариантом осуществления настоящего изобретения.

На шаге 110 при помощи уравнения 4 вычисляют разность Δо порядковых индексов, и на основе разности Δо порядковых индексов получают данные Snext, которые кодируют в битовый поток В. Данные Snext могут указывать, является ли разность Δо порядковых индексов отрицательной, и соответственно, является ли занятая грубая точка Pnext, соответствующая точке облака точек, запаздывающей занятой грубой точкой.

Если данные Snext указывают на то, что занятая грубая точка Pnext не является запаздывающей занятой грубой точкой, на шаге 120 в битовый поток В кодируют положительную разность Δо порядковых индексов.

К примеру, положительная разность Δо порядковых индексов может быть преобразована в последовательность двоичных данных, и все двоичные данные из этой последовательности энтропийно кодируют в битовый поток В.

Если данные Snext указывают на то, что занятая грубая точка является запаздывающей занятой грубой точкой Pnext, то на шаге 130 получают разность Δolate порядковых индексов для запаздывающей точки между порядковым индексом o(Pnext) и порядковым индексом o(P'ref) второй опорной грубой точки P'ref. Далее на шаге 140 модуль разности Δolate порядковых индексов для запаздывающей точки кодируют в битовый поток В.

Опционально, если модульне равен нулю, на шаге 150 модуль знак разности Δolate порядковых индексов для запаздывающей точки кодируют в битовый поток В.

На фиг. 14 схематично проиллюстрирована блок-схема алгоритма для способа 200 декодирования геометрических данных облака точек из битового потока кодированных данных облака точек в соответствии по меньшей мере с одним вариантом осуществления настоящего изобретения.

Способ 200 декодирования может быть напрямую выведен из способа 100 кодирования.

На шаге 210 данные Snext декодируют из битового потока В. Данные Snext указывают, является ли декодируемая занятая грубая точка Pnext, соответствующая точке облака точек, запаздывающей занятой грубой точкой. Занятую грубую точку считают запаздывающей занятой грубой точкой Pnext, когда ее порядковый номер в лексикографическом порядке меньше, чем порядковый номер первой опорной грубой точки Pref, соответствующей ранее декодированной точке облака точек.

Если данные Snext указывают на то, что занятая грубая точка Pnext не является запаздывающей занятой грубой точкой, на шаге 220 из битового потока В декодируют положительную разность Δо порядковых индексов. Положительная разность Δо порядковых индексов представляет собой разность между порядковым индексом o(Pnext) занятой грубой точки Pnext и порядковым индексом o(Pref) опорной грубой точки Pref. В одном из вариантов осуществления шага 220 из битового потока В энтропийно декодируют последовательность двоичных данных, при этом положительная разность Δо порядковых индексов может быть получена на основе этой последовательности двоичных данных.

Если данные Snext указывают на то, что занятая грубая точка Pnext является запаздывающей занятой грубой точкой, на шаге 230 из битового потока В декодируют модуль

Разность o(Pnext) и порядковым индексом второй опорной грубой точки P'ref.

Опционально, если модуль не равен нулю, на шаге 240 из битового потока В может быть декодирован знак разности Ломе порядковых индексов для запаздывающей точки.

В одном из вариантов осуществления шага 150 (240) знак разности Δolate порядковых индексов для запаздывающей точки может кодироваться в обход (т.е. кодирован непосредственно в виде одного бита, без применения энтропийного кодирования).

В одном из вариантов осуществления настоящего изобретения первая опорная грубая точка Pref может быть последней кодированной или декодированной занятой грубой точкой Plast, которая соответствует последней декодированной или декодированной точке облака точек, в порядке кодирования или декодирования. Уравнение 4 становится уравнением 5, имеющим следующий вид:

Может возникнуть ситуация, при которой последняя кодированная (декодированная) занятая грубая точка Plast не будет иметь наибольший порядковый номер в лексикографическом порядке, если это будет запаздывающая занятая грубая точка.

В одном из вариантов осуществления настоящего изобретения первая опорная грубая точка Pref может быть ранее кодированной или декодированной занятой грубой точкой Phigh, имеющей наибольший порядковый индекс в лексикографическом порядке. Уравнение 4 становится уравнением 6, имеющим следующий вид:

В одном из вариантов осуществления настоящего изобретения вторая опорная грубая точка P'ref может быть первой опорной грубой точкой Pref, т.е. является либо последней кодированной или декодированной занятой грубой точкой Plast, либо ранее кодированной или декодированной занятой грубой точкой Phigh.

В этом варианте осуществления настоящего изобретения разность Δolate порядковых индексов для запаздывающей точки равна разности Δо порядковых индексов, вычисляемой в уравнении 4. Разность Δolate порядковых индексов для запаздывающей точки в этом случая является отрицательной разностью порядковых индексов, и не может быть ни положительной, ни нулевой. В этом случае шаги 150 и 240 опускают, и может быть сделан логический вывод о знаке, поскольку разность Δolate порядковых индексов для запаздывающей точки является отрицательной.

Вариант осуществления настоящего изобретения, в котором вторая опорная грубая точка P'ref является последней кодированной или декодированной занятой грубой точкой Plast особенно хорошо подходит для случаев, когда помехи в координатах φ или s двумерного пространства малы, поскольку он позволяет снизить затраты на кодирование (декодирование) модуля разности порядковых индексов для запаздывающей точки.

В одном из вариантов осуществления настоящего изобретения вторая опорная грубая точка P'ref может быть занятой или незанятой грубой точкой, порядковый индекс которой равен порядковому индексу первой опорной грубой точки Pref, сдвинутому на некоторое смещение.

В одном из вариантов это смещение может быть вычислено на основе всех, или подмножества, отрицательных разностей Δо порядковых индексов, полученных на основе ранее кодированных или декодированных точек, на основе порядкового индекса o(Pref) первой опорной грубой точки Pref.

Так, смещение может быть равно среднему из 2N отрицательных разностей Δо порядковых индексов, где N равно 3 или 4, например, 2N последних кодированных или декодированных отрицательных разностей Δо порядковых индексов.

В одном из вариантов в битовый поток В может быть кодирован (или декодирован из битового потока) модуль разности порядковых индексов для запаздывающей точки минус 1.

В одном из вариантов осуществления способов 100 и 200 данные Snext могут быть синтаксическим элементом, имеющим, например, наименование 'nex_poin_is_late_flag' (φлаг "следующая точка является запаздывающей). Таким образом, данные Snext могут быть двоичными данными (флагом).

В одном из вариантов двоичные данные (φлаг) могут быть сигнализированы, к примеру, в наборе параметров геометрии и указывать на то, что данные Snext не нужно кодировать или декодировать, и на то, что они могут всегда рассматриваться как указание на то, что следующая занятая грубая точка Pnext не является запаздывающей. То есть, если облако точек гарантировано соответствует идеальному сценарию применения, эффективность кодирования нисколько не снижается. Такие двоичные данные информируют о том, всегда ли порядковые индексы лексикографически будут увеличиваться при декодировании, что может быть полезно в процессе декодирования, например, чтобы использовать оптимизированный конвейер декодирования или рендеринга в случае идеального сценария применения.

В одном из вариантов осуществления шага 110 (210) данные Snext могут быть двоичными данными, указывающими, является ли занятая грубая точка (Pnext), соответствующая точке облака точек, запаздывающей занятой грубой точкой, и могут энтропийно кодироваться (декодироваться) на основе по меньшей мере одних других двоичных данных Snext,i- Каждый из упомянутых по меньшей мере одних двоичных данных Snext,i указывает, является ли по меньшей мере одна ранее кодированная (декодированная) грубая точка P1, соответствующая ранее кодированной (декодированной) точке облака точек, запаздывающей занятой грубой точкой.

Энтропийное кодирование (декодирование) двоичных данных Snext на основе упомянутых по меньшей мере одних других двоичных данных Snext,i обеспечивает более эффективное кодирование (декодирование) двоичных данных Snext по сравнению С кодированием (декодированием) всех двоичных данных Snext независимо друг от друга.

В одном из примеров осуществления настоящего изобретения, показанном на фиг. 15, двоичные данные Snext кодируют при помощи контекстно-адаптивного двоичного арифметического кодирования (context adapt1ve binary arithmet1c coding, CABAC).

В одном из вариантов на основе двоичных данных Snext,i может быть выбран контекст ctxIdx, соответствующий N ранее кодированным (декодированным) занятым грубым точкам. К примеру, может формироваться N-битное слово W, при помощи конкатенации N (например, N=3) двоичных данных Snext,i.

В таблице Tctx контекстов с Nctx записями, как правило, хранят вероятности, связанные с контекстами, и вероятности pctxIdx, полученные как ctxIdx-я запись в таблице контекстов. Контекст выбирают на основе индекса ctxIdx контекста при помощи следующего выражения:

К примеру, индекс ctxIdx контекста может соответствовать N-битному слову W. Контекст Ctx в этом случае выбирают следующим образом: Ctx=Tctx[W]

Двоичные данные Snext энтропийно кодируют в битовый поток В (декодируют из битового потока В) с использованием вероятности pctxidx.

Энтропийные (де)кодеры, как правило, являются арифметическими, однако могут быть также любым другим типом энтропийных (де)кодеров, например, асимметричными системами счисления. В любом случае оптимальные кодеры добавляют -log2(pctxIdx) битов в битовый поток для кодирования Snext=1 или- log2(l-pctxidx) битов в битовый поток В для кодирования Snext=0. Когда двоичные данные Snext кодированы (декодированы) вероятность pctxIdx обновляют при помощи блока обновления, который принимает на вход кодированные двоичные данные Snext и pctxIdx; при этом обновление, как правило, выполняют при помощи таблиц обновления. Обновленная вероятность заменяет ctxIdx-ю запись в таблице Tctx контекстов. Затем кодируют (или декодируют) другие двоичные данные Snext и т.д. Цикл обновления контекстной таблицы является узким горлом процесса кодирования, поскольку другие двоичные данные Snext могут быть кодированы (декодированы) только после завершения обновления. По этой причине доступ к памяти таблицы контекстов должен быть как можно более быстрым, а минимизация размера таблицы упрощает ее аппаратную реализацию.

Выбор подходящего контекста, т.е. вероятности pctxIdx, дающей наилучшую оценку шансов двоичных данных Snext быть равными 1, критически важен для получения эффективного сжатия. Соответственно, при выборе контекста, чтобы полученный контекст был адекватным, должны использоваться по меньшей мере одни двоичные данные Snext,i, соответствующие N последним ранее кодированным (декодированным) занятым грубым точкам, и корреляция между ними.

В одном из вариантов индекс ctxIdx контекста может быть получен на основе двоичных данных Snext,i, соответствующих N последним ранее кодированным (декодированным) занятым грубым точкам, индексы датчика которых принадлежат определенной группе индексов датчиков.

В одном из вариантов могут формироваться группы последовательных датчиков.

К примеру, если измерительная головка включает 32 датчика (32 индекса датчика), каждая из групп может включать 4 последовательных индекса датчика: {0,1,2,3},{4,5,6,7},…, {28,29,30,31}. Затем для каждой группы может использоваться N-битный буфер, при этом буфер группы обновляют всякий раз, когда двоичные данные Snext кодированы (декодированы) для датчика, принадлежащего группе.

В одном из вариантов каждая группа может включать уникальный датчик.

В одном из вариантов контексты могут быть специфичными для каждой группы индексов датчика.

Контекстно-адаптивный двоичный арифметический декодер выполняет по существу те же операции, что и контекстно-адаптивный двоичный арифметический кодер, за исключением того, что кодированные двоичные данные Snext декодируют из битового потока В при помощи энтропийного декодера с использованием вероятности pctxIdx.

В одном из вариантов осуществления настоящего изобретения, проиллюстрированном на фиг. 16, модуль (или в одном из вариантов, модуль минус 1) разности Δolate порядковых индексов для запаздывающей точки может быть кодирован (шаг 140) при помощи кодирования (или декодирован, при помощи декодирования, шаг 230) первого положительного смещения (шаг 310), соответствующего первой координате в двумерном пространстве), и кодирования (декодирования) второго положительного смещения (шаг 320), соответствующего второй координате в двумерном пространстве.

Когда пространство двумерных координат является пространством двумерных координат (φ, λ), первое положительное смещение является положительным смещением φoffset азимутального угла, а второе положительное смещение является положительным смещением λoffset индекса датчика.

Разность Δolate порядковых индексов для запаздывающей точки в этом случае получают следующим образом:

где Nsensor количество датчиков в измерительной головке.

В одном из вариантов осуществления шага 310 положительное смещение φoffset азимутального угла может кодироваться при помощи кода expGolomb.

В одном из вариантов осуществления шага 310 положительное смещение φoffset азимутального угла может быть энтропийно кодировано (декодировано) на основе адаптивного выбора контекста.

В одном из вариантов положительное смещение ф0явй азимутального угла может быть преобразовано в последовательность двоичных данных bk1. В одном из примеров последовательность двоичных данных bk1 является унарным представлением положительного смещения φoffset азимутального угла, где k1 находится в диапазоне от 0 до φoffset (т.е. является последовательностью φoffset последовательных двоичных данных, равных 1, за которым следует одни двоичные данные, равные 0, или альтернативно, последовательностью φoffset двоичных данных, равных 0, за которыми следуют одни двоичные данные, равные 1). Все двоичные данные bk1 энтропийно кодируют с использованием одного и того же контекста. Последовательность двоичных данных bk1 энтропийно декодируют, и положительное смещение φoffset азимутального угла восстанавливают на основе последовательности декодированных двоичных данных bk1.

В одном из вариантов контекст энтропийного кодирования, используемый для кодирования или декодирования каждого бита bk1, может выбираться на основе функции индекса k1, например, min(k1, 1).

Когда пространство двумерных координат является пространством двумерных координат (φ, λ), первое положительное смещение является положительным смещением soffset индекса отсчета, а второе положительное смещение является положительным смещением λoffset индекса датчика.

Разность Δolate порядковых индексов для запаздывающей точки в этом случае получают следующим образом:

Этот вариант (уравнение 8) предпочтителен, когда предполагается, что смещение λoffset индекса датчика является положительным. Это позволяет упростить кодирование (и улучшить сжатие), в случае когда точки имеют корректный порядок по индексам датчика.

В одном из вариантов осуществления шага 310 положительное смещение soffset индекса отсчета может кодироваться при помощи кода expGolomb.

В одном из вариантов осуществления шага 310 положительное смещение soffset индекса отсчета может быть энтропийно кодировано (декодировано) на основе адаптивного выбора контекста.

В одном из вариантов положительное смещение soffset индекса отсчета может быть преобразовано в последовательность двоичных данных bk2 для получения, например, унарного представления положительного смещения soffset индекса отсчета (где k2 лежит в диапазоне от 0 до soffset). Все двоичные данные bk2 энтропийно кодируют с использованием одного и того же контекста. Последовательность двоичных данных bk2 энтропийно декодируют, и положительное смещение soffset индекса отсчета восстанавливают на основе последовательности декодированных двоичных данных bk2.

В одном из вариантов осуществления шага 320 положительное смещение λoffset индекса датчика может кодироваться при помощи кода expGolomb.

В одном из вариантов осуществления шага 320 положительное смещение λoffset индекса датчика может быть энтропийно кодировано (декодировано) на основе адаптивного выбора контекста.

В одном из вариантов положительное смещение λoffset индекса датчика может быть преобразовано в последовательность двоичных данных bk3 для получения, например, унарного представления положительного смещения λoffset индекса датчика (где k3 лежит в диапазоне от 0 до Jwfset). Все двоичные данные bk3 энтропийно кодируют с использованием одного и того же контекста. Последовательность двоичных данных bk3 энтропийно декодируют, и положительное смещение λoffset индекса датчика восстанавливают на основе последовательности декодированных двоичных данных bk3.

В одном из вариантов выбор контекстов может быть основан на основе индекса k3 двоичных данных и/или N-битного слова W, сформированного конкатенацией N (например, N=1 или N=2) двоичных данных Snext,i, соответствующих N последним ранее кодированным (декодированным) занятым грубым точкам, индексы датчиков которых принадлежат определенной группе индексов датчика.

В одном из вариантов выбор контекста для кодирования двоичных данных с индексом k3 может быть также основан на индексе группы индексов датчика, котором принадлежит датчик с индексом (λref+k3) modulo Nsensor, где λref - индекс датчика, соответствующего второй опорной грубой точке P'ref.

Следует отметить, что уравнение 7 и соответствующие ему варианты осуществления настоящего изобретения могут быть без труда адаптированы для случая, в котором пространство двумерных координат является пространством двумерных координат (s,λ) путем замены в формулах φoffset на soffset. Следует отметить, что уравнение 8 и соответствующие ему варианты осуществления настоящего изобретения могут быть без труда адаптированы для случая, в котором пространство двумерных координат является пространством двумерных координат (φ,λ) путем замены в формулах soffset на λoffset.

В одном из вариантов осуществления настоящего изобретения, проиллюстрированном на фиг. 17, модуль (или в одном из вариантов, минус 1) разности Δolate порядковых индексов для запаздывающей точки может быть кодирован (шаг 140) при помощи кодирования (или декодирован, при помощи декодирования, шаг 230) первого положительного смещения (шаг 310), соответствующего положительному смещению λoffset индекса датчика, при помощи кодирования двух положительных значений λoffset,1 и λoffset,2 относительно индекса λref датчика. положительные значения λoffset,1 и λoffset,2 определяют так, что их сумма равна положительному смещению λoffset индекса датчика: λoffsetoffset,1 + λoffset,2, при этом

На шаге 330 первое положительное смещение λoffset,1 может быть кодировано в битовый поток В (или декодировано из битового потока В).

На шаге 340, если λoffset,1<Nsensor-λref, то кодирование (декодирование) положительного смещения λoffset может оканчиваться (λoffset,2=0).

На шаге 350, если λoffset,1<Nsensor-λref, то второе положительное значение λoffset,2 может быть кодировано в битовый поток В (или декодировано из битового потока В) (шаг 360).

В одном из вариантов первое положительное смещение не может быть кодировано до положительного смещения λoffset индекса датчика, на шаге 350, если λoffset,1<Nsensor-λref,, то первое положительное смещение кодируют в битовый поток В (или декодируют из битового потока В) (шаг 310). Если λoffset,1<Nsensor-λref, первое положительное смещение считают равным нулю.

В одном из вариантов первое положительное смещение может быть кодировано в битовый поток В (или декодировано из битового потока В) (шаг 310) после того, как было кодировано первое положительное значение λoffset,1 но до того, как было кодировано второе положительное значение λoffset,2, т.е. после шага 350 и до шага 360, если λoffset,1=Nsensor-λref,.

В одном из вариантов осуществления настоящего изобретения положительное смещение λoffset индекса датчика может быть дополнительно ограничено оно значением, меньшим количества датчиков Nsensor.

В одном из вариантов осуществления шага 330 положительное значение λoffset,1 может быть энтропийно кодировано (декодировано) на основе адаптивного выбора контекста.

В одном из вариантов положительное значение смещения λoffset,1 может быть преобразовано в последовательность двоичных данных bk4 для получения, например, унарного представления положительного значения смещения λoffset,1 (где k4 лежит в диапазоне от 0 до λoffset,1). Все двоичные данные bk4 энтропийно кодируют с использованием одного и того же контекста. Последовательность двоичных данных bk4 энтропийно декодируют, и положительное значение смещения λoffset,1 восстанавливают на основе последовательности декодированных двоичных данных bk4.

В одном из вариантов, где положительное значение смещения λoffset,1 может быть преобразовано в последовательность двоичных данных bk4 для получения унарного представления положительного значения λoffset,1 смещения, если λoffset,1=Nsensorref, где k4 лежит только в диапазоне от 0 до λoffset,1-1: последний бит унарного представления может быть опущен. Причина заключается в том, что более высокие значения положительного значения λoffset,1 смещения невозможны или не допускаются.

В одном из вариантов выбор контекстов может быть основан на индексе Lref+k4 датчика, или, в другом варианте, на индексе группы индексов датчиков, включающей индекс λref+k4 датчика.

В одном из вариантов выбор контекстов может быть также основан на основе данных Snext,i, указывающих, является ли ранее кодированная (декодированная) занятая грубая точка P1 запаздывающей занятой грубой точкой, при этом упомянутая занятая грубая точка P1 соответствует ранее кодированной (декодированной) точкой облака точек, индекс датчика которой соответствует порядковому индексу второй опорной грубой точки P'ref(i), используемой для вычисления разности Δolate(i) порядковых индексов для запаздывающей точки, для которой упомянутая занятая грубая точка P1 была равна индексу λref датчика, или в одном из вариантов, принадлежала группе индексов датчик, включающих индекс λref датчика.

В одном из вариантов выбор контекста может также быть основан на функции от k4. Например, такая функция может быть равна min(k4,2).

В одном из вариантов осуществления шага 360 положительное значение λoffset,2 может быть энтропийно кодировано (декодировано) на основе адаптивного выбора контекста.

В одном из вариантов положительное значение λoffset,2 может быть преобразовано в последовательность двоичных данных bk5 для получения, например, унарного представления положительного значения λoffset,2 (где k5 лежит в диапазоне от 0 до λoffset,2). Все двоичные данные bk5 энтропийно кодируют с использованием одного и того же контекста. Последовательность двоичных данных bk5 энтропийно декодируют, и положительное значение λoffset,2 смещения восстанавливают на основе последовательности декодированных двоичных данных bk5.

В одном из вариантов выбор контекстов может быть также основан на основе данных Snext,i, указывающих, является ли ранее кодированная (декодированная) занятая грубая точка P1 запаздывающей занятой грубой точкой, при этом упомянутая занятая грубая точка P1 соответствует ранее кодированной (декодированной) точкой облака точек, индекс датчика которой соответствует порядковому индексу второй опорной грубой точки P'ref(i) используемой для вычисления разности Δolate(i) порядковых индексов для запаздывающей точки, для которой упомянутая занятая грубая точка P1 была равна индексу λref датчика, или в одном из вариантов, принадлежала группе индексов датчик, включающих индекс W датчика.

В одном из вариантов контекст может также быть выбран на основании функции от j.

Например, такая функция может быть равна min(λoffset,2+k5, 2).

В одном из вариантов таблица контекстов, используемая для кодирования λoffset,1, может также использоваться для кодирования λoffset,2.

На фиг. 18 показан пример определения первого положительного смещения soffset и положительного значения λoffset,2, когда следующая занятая грубая точка Pnext имеет индекс Snext отсчета равен sref-1, где sref - индекс отсчета второй опорной грубой точки P'ref, и имеет индекс Xntxt датчика, больший индекса датчика второй опорной грубой точки P'ref.

В проиллюстрированном примере λoffset,1<Nsensorref (шаг 340). В этом случае определяют, что второе положительное значение λoffset,2 равно 0, и что первое положительное смещение soffset также равно 0.

В данном примере кодируемое (декодируемое) первое положительное значение λoffset,1 больше 0 (λnextref). Положительное смещение индекса отсчета soffset=0, при этом разность Δо порядковых индексов задана уравнением 8.

На фиг. 19 показан пример определения первого положительного смещения soffset и положительного значения λoffset,2, когда следующая занятая грубая точка Pnext и вторая опорная грубая точка P'ref имеют одинаковые индексы отсчета. Смещение soffset индекса отсчета равно 0.

В проиллюстрированном примере λoffset,1=Nsensorref (шаг 350). Затем второе положительное значение λoffset,2 кодируют в битовый поток В. Положительное смещение индекса отсчета soffset=0, при этом разность Δо порядковых индексов задана уравнением 8.

На фиг. 20 показан пример определения первого положительного смещения soffset и положительного значения λoffset,2, когда следующая занятая грубая точка Pnext имеет индекс Snext отсчета, равным sref-2, где sref - является индексом отсчета второй опорной грубой точки P'ref.

В проиллюстрированном примере λoffset,1=Nsensorlast (шаг 350). Затем второе положительное значение λoffset,2 кодируют в битовый поток В. Положительное смещение soffset индекса отсчета равно 2, при этом разность Δо порядковых индексов задана уравнением 8.

На фиг. 21 схематично проиллюстрирована блок-схема одного из примеров системы, в которой могут быть реализованы различные аспекты и примеры осуществления настоящего изобретения.

Система 400 может быть встроена в одно или более устройств, включающих различные компоненты, описанные ниже. В различных вариантах осуществления настоящего изобретения система 400 может быть сконфигурирована для реализации одного или более из аспектов, описанных в настоящей заявке.

Примеры оборудования, которые могут составлять систему 400 в целом, или ее часть, включают персональные компьютеры, портативные компьютеры, смартфоны, планшетные компьютеры, цифровые мультимедийные телеприставки, цифровые телеприемники, персональные системы видеозаписи, подключенные к Интернету бытовые приборы, подключенные к Интернету автомобили и их соответствующие системы обработки данных, устанавливаемые на голове дисплейные устройства или очки с прозрачными дисплеями (head mounted display devices, HMD), проекторы (мультимедийные), среды виртуальной реальности CAVE (системы со множеством дисплеев), серверы, видеокодеры, видеодекодеры, постпроцессоры, обрабатывающие выходные данные с видеодекодера, препроцессоры, подающие входные данные в видеокодер, веб-серверы, телеприставки или любые другие устройства для обработки облаков точек, видеоинформации, изображений или иные устройства связи. Элементы системы 400, по отдельности или в комбинации, могут быть реализованы в одной интегральной схеме (integrated circuit, 1С), нескольких интегральные схемах и/или на дискретных компонентах. К примеру, по меньшей мере в одном из вариантов осуществления настоящего изобретения элементы обработки данных или кодера/декодера в системе 400 могут быть распределены среди нескольких интегральных схем и/или дискретных компонентов. В различных вариантах осуществления настоящего изобретения система 400 может быть соединена, с возможностью связи, с другими подобными системами или с другими электронными устройствами, например, при помощи шины связи или при помощи специальных портов ввода и/или вывода.

Система 400 может включать по меньшей мере один процессор 410, сконфигурированный для исполнения инструкций, загружаемых в него для реализации, к примеру, различных аспектов, описанных в настоящей заявке. Процессор 410 может иметь встроенную память, интерфейс ввода-вывода и различные иные схемы, известные на существующем уровне техники. Система 400 может включать по меньшей мере одну память 420 (к примеру, энергозависимое запоминающее устройство и/или энергонезависимое запоминающее устройство). Система 400 может включать устройство 440 хранения, которое может включать энергонезависимую память и/или энергозависимую память, включая, без ограничения перечисленным, электрически перепрограммируемую память «только для чтения» (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), флэш-память, привод магнитных дисков и/или привод оптических дисков. Устройство 440 хранения в качестве неограничивающих примеров может включать внутреннее устройство хранения, подключаемое устройство хранения и/или доступное по сети устройство хранения.

Система 400 может включать модуль 430 кодера/декодера, сконфигурированный, например, для обработки данных с целью получения кодированных/декодированных геометрических данных облака точек, при этом модуль 430 кодера/декодера может иметь собственные процессор и память. Модуль 430 кодера/декодера может представлять собой модуль (или модули), входящие в состав устройства для выполнения функций кодирования и/или декодирования. Как известно, устройство может содержать модуль кодирования, модуль декодирования или оба модуля одновременно. При этом модуль 430 кодера/декодера 330 может быть реализован в виде отдельного элемента 400 или может быть встроен в процессор 410 в виде комбинации аппаратного и программного обеспечения, что известно специалистам в данной области техники.

Программный код, загружаемый в процессор 410 или кодер/декодер 430 для выполнения различных аспектов, описанных в настоящей заявке, может храниться в устройстве 440 хранения и впоследствии загружаться в память 420 для исполнения процессором 410. В соответствии с различными вариантами осуществления настоящего изобретения одно или более из следующего: процессор 410, память 420, устройство 440 хранения я модуль 430 кодера/декодера могут хранить один или более различных объектов при выполнении процедур, описанных в настоящей заявке. Такие хранимые объекты включают, без ограничения перечисленным, кадр облака точек, геометрию/атрибуты кодируемых/декодируемых видео/изображений или фрагменты геометрии/атрибутов кодируемых/декодируемых видео/изображений, битовый поток, матрицы, переменные и промежуточные или окончательные результаты обработки уравнений, формул, операций и логики выполнения операций.

В некоторых из вариантов осуществления настоящего изобретения память внутри процессора 410 и/или модуля 430 кодера/декодера может использоваться для хранения инструкций и для использования в качестве рабочей памяти при обработке, которая может выполняться во время кодирования или декодирования.

В других вариантах осуществления настоящего изобретения, однако, для одной или более из подобных функций может применяться память, внешняя по отношению к устройству обработки данных (например, таким устройством обработки данных может быть процессор 410 или модуль 430 кодера/декодера). Внешней памятью может быть память 420 и/или устройство 440 хранения, к примеру, динамическая энергозависимая память и/или энергонезависимая флэш-память. В некоторых из вариантов осуществления настоящего изобретения внешняя энергонезависимая флэш-память может использоваться для хранения операционной системы телевизора. По меньшей мере в одном варианте осуществления настоящего изобретения быстрая внешняя динамическая энергозависимая память, например, RAM, может использоваться в качестве рабочей памяти для операций кодирования и декодирования видео, к примеру, для кодирования по стандартам MPEG-2 часть 2 (также называемому Рекомендация Н.262 ITU-T и ISO/IEC 13818-2, также называемому MPEG-2 Video), HEVC (High Efficiency Video coding, «высокоэффективное видеокодирование»), VVC (Versatlle Video Coding, «универсальное видеокодирование»), или стандарту MPEG-I, часть 5 или часть 9.

Входные данные в элементы системы 400 могут подаваться при помощи различных устройств ввода, показанных в блоке 490. Такие устройства ввода включают, без ограничения перечисленным: (i) радиочастотный узел, который может принимать радиочастотный сигнал, передаваемый, например, по радиоинтерфейсу передатчиком, (ii) входной терминал композитного интерфейса, (iii) входной терминал USB и/или (iv) входной терминал HDMI.

В различных вариантах осуществления настоящего изобретения устройства ввода в блоке 490 могут иметь соответствующие связанные с ними элементы обработки входных данных, известные на существующем уровне техники. К примеру, радиочастотный узел может быть связан с элементами, необходимым для следующего: (i) выбор необходимой частоты (это также называют выделением сигнала, или ограничением полосы частот до заданной полосы), (ii) преобразование выделенного сигнала с понижением частоты, (iii) повторное ограничение полосы частоты до более узкой для выделения (к примеру) полосы частот сигнала, которая может, в некоторых из вариантов осуществления настоящего изобретения, называться каналом, (iv) демодуляция преобразованного с понижением частоты и ограниченного по полосе частот сигнала, (v) выполнение исправления ошибок, и (vi) демультиплексирование для выделения требуемого потока пакетов данных. Радиочастотный узел в различных вариантах осуществления настоящего изобретения может включать один или более элементов для выполнения таких функций, к примеру, селекторы частоты, селекторы сигнала, ограничители полосы частот, селекторы канала, фильтры, понижающие преобразователи, демодуляторы, корректоры ошибок и демультиплексоры. Радиочастотный узел может включать устройство настройки, которое выполняет некоторые из подобных функций, включая, например, понижающее преобразование принятого сигнала до пониженной частоты (к примеру, промежуточной частоты или до близкой к основной полосе частот) или до основной полосы частот.

В одном из вариантов осуществления настоящего изобретения, представляющем собой телеприставку, радиочастотный узел и связанный с ним элемент обработки входных данных может принимать радиочастотный сигнал, передаваемый по проводному (например, кабельному) носителю. В этом случае радиочастотный узел может выполнять селекцию частоты, при помощи фильтрации, понижающего преобразования и повторной фильтрации, до требуемой полосы частот.

В различных вариантах осуществления настоящего изобретения описанные выше (и другие) элементы могут иметь иной порядок, некоторые из элементов могут быть удалены, и/или могут быть добавлены другие элементы, выполняющие сходные или отличающиеся функции.

Добавление элементов может включать введение элементов между существующими, к примеру, введение усилителей и аналого-цифрового преобразователя. В различных вариантах осуществления настоящего изобретения радиочастотный узел может иметь антенну.

При этом, упомянутые терминалы USB и/или HDMI могут содержать соответствующие интерфейсные процессоры для соединения системы 400 с другими электронными устройствами по соединениям USB и/или HDMI. Нужно понимать, что различные аспекты обработки входных данных, к примеру, коррекция ошибок с помощью кодов Рида-Соломона, могут быть реализованы при помощи отдельной интегральной схемы обработки ввода или при внутри процессора 410, в зависимости от требований. Аналогично, аспекты обработки интерфейсов USB или HDMI могут быть реализованы в отдельных интерфейсных интегральных схемах или внутри процессора 410 в зависимости от требований. Демодулированный, с исправленными ошибками и демультиплексированный поток может быть подан в различные обрабатывающие элементы, включающие, например, процессор 410 и кодер/декодер 430, функционирующие в сочетании с элементами памяти и хранения, для обработки потока данных, необходимой для отображения на устройстве вывода.

Различные элементы системы 400 могут быть выполнены в интегральном корпусе. Внутри интегрального корпуса различные элементы могут быть связаны друг с другом и передавать друг другу данные с использованием подходящего соединительного механизма 490, например, внутренней шины, известной на существующем уровне техники, включая шину I2C, проводные соединения и печатные платы.

Система 400 может включать интерфейс 450 связи, которые обеспечивает возможность связи с другими устройствами по каналу 800 связи. Интерфейс 450 связи может включать, без ограничения перечисленным, приемопередатчик, сконфигурированный для передачи и приема данных по каналу 800 связи. Интерфейс 450 связи может включать, без ограничения перечисленным, модем или сетевую карту, при этом канал 800 связи может быть реализован, например, в проводной и/или беспроводной среде передачи.

Поток данных может передаваться в систему 400, в различных вариантах осуществления настоящего изобретения, с помощью сети Wi-Fi, например, по стандарту IEEE 802.11. Сигнал Wi-Fi в таких вариантах осуществления настоящего изобретения может приниматься по каналу 800 связи и интерфейсу 450 связи, которые приспособлены для связи по стандарту Wi-Fi. Канал 800 связи в таких вариантах осуществления настоящего изобретения, как правило, может быть связан с точкой доступа или маршрутизатором, который представляет доступ к внешним сетям, включая Интернет, давая возможность использовать стриминговые приложения и иную связь, поставляемую поверх сетевых услуг оператора связи (over-the-top, ОТТ).

В других вариантах осуществления настоящего изобретения потоковая передача данных в систему 400 может осуществляться с помощью телеприставки, которая подает данные по HDMI-соединению блока 490 ввода.

Также в дополнительных вариантах осуществления настоящего изобретения потоковая передача данных в систему 400 может осуществляться с помощью радиочастотного соединения блока 490 ввода.

Передаваемый поток данных может использоваться как метод сигнализации информации, используемой в системе 400. Сигнализируемая информация может включать битовый поток В и/или такую информацию, как количество точек в облаке точек и/или конфигурационные параметры датчиков.

Нужно понимать, что сигнализация может выполняться множеством различных способов. К примеру, для сигнализации информации соответствующему декодеру в различных вариантах осуществления настоящего изобретения могут применяться один или более синтаксических элементов, флагов и т.п.

Система 400 может подавать выходной сигнал в различные устройства вывода, включая дисплей 500, громкоговорители 600 и иные периферийные устройства 700. Упомянутые иные периферийные устройства 700 могут включать в различных примерах осуществления настоящего изобретения одно или более из следующего: автономный DVR, проигрыватель дисков, стереосистему, систему освещения, а также другие устройства, выполняющие свои функции на основе выходных данных системы 400.

В различных вариантах осуществления настоящего изобретения между системой 400 и дисплеем 500, громкоговорителями 600 и иными периферийными устройствами 700 могут передаваться сигналы управления при помощи, например, такой сигнализации, как AV Link (Audio/Video Link, «аудио/видео линия»), СЕС (Consumer Electronics Control, «управление бытовой электроникой») или иных протоколов связи, обеспечивающих возможность управления между устройствами (device-to-device) c вмешательством пользователя или без него.

Устройства вывода могут быть соединены с системой 400, с возможностью связи, по специальным соединениям через соответствующие интерфейсы 460, 470 и 480.

Альтернативно, устройства вывода могут быть соединены с системой 400 при помощи канала 800 связи через интерфейс 450 связи. Дисплей 500 и громкоговорители 600 могут быть объединены в одном блоке с остальными компонентами системы 400 в составе электронного устройства, например, телевизора.

В различных вариантах осуществления настоящего изобретения дисплейный интерфейс 460 может включать дисплейный драйвер, к примеру, микросхему тайминг-контроллера (Т Con).

Дисплей 500 и громкоговоритель 600, альтернативно, могут быть отдельными от одного или более других компонентов, к примеру, если радиочастотный узел блок 490 ввода является частью отдельной телеприставки. В тех вариантах осуществления настоящего изобретения, где дисплей 500 и громкоговорители 600 являются внешними компонентами, выходной сигнал может подаваться по специальным выходным, включая, к примеру, порты HDMI, порты USB или порты СОМР.

На фиг. 1-21 показаны различные способы, описанные в данном документе, при этом каждый способ включает один или более шагов, или операций, для реализации описанного способа. Если конкретный порядок выполнения шагов или операций не является необходимым для корректного выполнения способа, то порядок и/или использование каких-либо шагов, или операций, могут быть изменены, или они могут комбинироваться.

Некоторые из примеров были проиллюстрированы на примерах блок-схем и/или блок-схем алгоритмов. Каждый такой блок может представлять собой схемный элемент, модуль или фрагмент кода, который включает одну или более исполняемых инструкций для реализации заданной логической функции (или функций). Следует отметить, что в некоторых альтернативных реализациях, функции, отмеченные в блоке, могут выполняться в порядке, отличающемся от проиллюстрированного на чертеже. К примеру, два блока, показанные в виде последовательности, фактически могут исполняться по существу одновременно, или же, в некоторых случаях, блоки могут исполняться в обратном порядке, в зависимости от используемой функциональности.

Реализации и аспекты, описанные в данном документе, могут быть реализованы, к примеру, в форме способа или процедуры, устройства, компьютерной программы, потока данных, битового потока или сигнала. Даже если реализация описана только в контексте одной формы (к примеру, только как способ), описанные отличительные признаки могут быть также реализованы и в других формах (к примеру, устройства или компьютерной программы).

Способы могут быть также реализованы, например, в форме процессора, что обобщенно подразумевает устройства обработки данных, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Процессоры также включают устройства связи.

Также способы могут быть реализованы путем выполнения инструкций процессором, при этом такие инструкции (и/или значения данных, получаемые при выполнении) могут храниться на машиночитаемом носителе данных). Машиночитаемый носитель данных может принимать форму машиночитаемого программного продукта, воплощенного на одном или более машиночитаемых носителей и имеющего воплощенный на нем машиночитаемый программный код, который может исполняться компьютером. Под машиночитаемым носителем данных в настоящем документе понимают носитель данных, обладающий неотъемлемой способностью хранить в себе информацию, а также способностью обеспечивать извлечение информации из него. К примеру, машиночитаемый носитель данных может представлять собой, без ограничения перечисленным, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, оборудование или устройство, или же любую подходящую комбинацию перечисленного. Специалисты в данной области техники должны понимать, что перечисленное ниже, являясь конкретными примерами машиночитаемых носителей данных, в которых могут применяться варианты осуществления настоящего изобретения, является лишь иллюстративным и неисчерпывающим перечислением: портативная компьютерная дискета, жесткий диск, память "только для чтения" (ROM), перезаписываемая память "только для чтения" (erasable programmable read-only memory, EPROM) или Flash-память, портативная память "только для чтения" на компакт-диске (compact disc read-only memory, CD-ROM), оптическое запоминающее устройство, магнитное запоминающее устройство или любая комбинация перечисленного.

Инструкции могут образовывать прикладную программу, материально воплощенную на читаемом процессором носителе.

Инструкции могут, к примеру, иметь форму аппаратного обеспечения, микропрограммного обеспечения, программного обеспечения или их комбинации. Инструкции могут находиться, к примеру, в операционной системе, в отдельном приложении или в их комбинации. Процессор, соответственно, может быть определен, например, одновременно как устройство, сконфигурированное для выполнения процедуры, и как устройство, которое включает читаемый процессором носитель (например, запоминающее устройство) с инструкциями для выполнения процедуры. Также на читаемом процессором носителе, в дополнение к инструкциям или вместо них, могут храниться значения данных, получаемых в результате исполнения.

Устройство может быть реализовано, к примеру, в форме подходящего аппаратного, программного и микропрограммного обеспечения. Примеры таких устройств могут включать персональные компьютеры, портативные компьютеры, смартфоны, планшетные компьютеры, цифровые мультимедийные телеприставки, цифровые телеприемники, персональные системы видеозаписи, подключенные к Интернету бытовые приборы, подключенные к Интернету автомобили и их соответствующие системы обработки данных, устанавливаемые на голове дисплейные устройства или очки с прозрачными дисплеями (HMD), проекторы (мультимедийные), среды виртуальной реальности CAVE (системы со множеством дисплеев), серверы, видеокодеры, видеодекодеры, постпроцессоры, обрабатывающие выходные данные с видеодекодера, препроцессоры, подающие входные данные в видеокодер, веб-серверы, телеприставки или любые другие устройства для обработки облаков точек, видеоинформации, изображений или иные устройства связи. Очевидно, такое оборудование может быть мобильным или даже установлено на подвижной транспортной платформе.

Компьютерное программное обеспечение может быть реализовано при помощи процессора 410 или при помощи аппаратного обеспечения, или с помощью комбинации программного и аппаратного обеспечения. В качестве неограничивающего примера варианты осуществления настоящего изобретения могут быть также реализованы при помощи одной или боле интегральных схем. Память 420 может быть любого типа, подходящего к техническому окружению, и может быть реализовано с помощью любой подходящей технологии хранения данных, к примеру, без ограничения перечисленным, оптических запоминающих устройств, магнитных запоминающих устройств, полупроводниковых запоминающих устройств, несъемной памяти или съемной памяти. Процессор 410 может быть любого типа, подходящего к техническому окружению, и может включать, без ограничения перечисленным, одно или более из следующего: микропроцессоры, компьютеры общего назначения, компьютеры специального назначения, а также процессоры, основанные на многоядерной архитектуре.

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

Конкретная терминология в настоящем документе используется исключительно для описания конкретных вариантов его осуществления и не имеет целью ограничение настоящего изобретения. В настоящем описании, а также в приложенной формуле изобретения, такие выражения, как «один», «один из» и «упомянутый» в единственном числе могут также подразумевать включение означаемых во множественном числе, если только из контекста очевидно не следует обратное. Нужно также понимать, что выражения «включает/содержит» и/или «включающий/содержащий» в данном документе определяют присутствие перечисленных признаков, подсистем, шагов, операций, элементов и/или компонентов, но не исключают присутствие или добавление одного или боле других признаков, подсистем, шагов, операций, элементов, компонентов и/или их групп. При этом, когда элемент назван «реагирующим» на другой элемент, или «подключенным» к другому элементу, он может отвечать или быть подключенным непосредственно, или могут присутствовать промежуточные элементы. Напротив, если элемент описан как «непосредственно реагирующий» на другой элемент или «непосредственно подключенный» к другому элементом, промежуточные элементы отсутствуют.

Нужно понимать, что использование символа «/» или выражений «и/или» и «по меньшей мере одно из следующего», к примеру, в случае «А/В» «А и/или В» и «по меньшей мере одно из следующего: А и В» может подразумевать включение выбора только первой перечисленной опции (А) или выбор только второй перечисленной опции (В), или выбор обеих опций (А и В). В качестве еще одного примера, в случае: «А, В и/или С» и «по меньшей мере одно из следующего: А, В и С», такие выражения подразумевают включение выбора только первой перечисленной опции (А) или выбор только второй перечисленной опции (В), или выбор только третьей перечисленной опции (С), или выбор только первой и второй перечисленных опций (А и В), или выбор только первой и третьей перечисленных опций (А и С), или выбор только второй и третьей перечисленных опций (В и С), или выбор всех трех опций (А и В и С). Специалистам в данной области техники должно быть очевидно, что это может быть расширено на любое количество перечисленных элементов.

В настоящей заявке могут использоваться множество различных числовых значений. Эти конкретные значения могут приводиться в качестве примера, и аспекты, описанные в данном документе, не ограничены этими конкретными значениями.

Для описания различных элементов в данном документе могли быть использованы термины «первый», «второй» и т.п., однако нужно понимать, что такие элементы не ограничены этими терминами. Данные термины используются исключительно в целях различения одних элементов от других. К примеру, первый элемент может быть назван вторым элементом, и аналогично, второй элемент может быть назван первым элементом, в пределах сущности и объема настоящего изобретения. Между первым и вторым элементами не предполагается никакого порядка предшествования.

Упоминание «варианта осуществления настоящего изобретения» или «одного из вариантов осуществления настоящего изобретения», или «одной реализации», или «одной из реализаций», а также вариаций этих выражений, используются зачастую для сообщения о том, что некоторый отличительный признак, структура, характеристика и т.п.(описанные в связи с вариантом осуществления настоящего изобретения или реализацией) включены по меньшей мере в один из вариантов осуществления или реализацию настоящего изобретения. То есть, фразы «в одном варианте осуществления настоящего изобретения» или «в одном из вариантов осуществления настоящего изобретения», или «в одной реализации», или «в одной из реализаций», а также их вариаций, в различных местах настоящей заявки не обязательно отсылают к одному и тому же варианту осуществления настоящего изобретения.

Аналогично, в данном документе выражение «в соответствии с одним из вариантов/примеров/реализаций» или «в одном из вариантов/примере/реализации», а также их вариации, используют зачастую для сообщения о том, что некоторый отличительный признак, структура, характеристика и т.п. (описанные в связи с проиллюстрированным вариантом/примером/реализацией) могут входить в состав по меньшей мере одного проиллюстрированного варианта/примера/реализации настоящего изобретения. Таким образом, появление выражений «в соответствии с одним из вариантов/примеров/реализаций» или «в одном из вариантов/примере/реализации» в различных местах настоящего описания не обязательно обозначает отсылку к одному и тому же варианту/примеру/реализации, а также не означает, что отдельные или альтернативные варианты/примеры/реализации должны исключать друг друга или другие проиллюстрированные варианты/примеры/реализации.

Числовые обозначения, приведенные в формуле изобретения, использованы исключительно для иллюстрации и не ограничивают объем формулы изобретения. Варианты и примеры осуществления настоящего изобретения могут применяться в любых комбинациях или суб-комбинациях, даже если они явно не описаны в данном документе.

Если чертеж является блок-схемой алгоритма, нужно понимать, что он также представляет блок-схему соответствующего устройства. Аналогично, когда чертеж является блок-схемой устройства, нужно понимать, что он также представляет блок-схему алгоритма соответствующего способа или процедуры.

На некоторых из блок-схем имеются стрелки на каналах связи, иллюстрирующие основное направление связи, однако нужно понимать, что связь может осуществляться и в противоположном стрелкам направлении.

В различных реализациях применяют декодирование. «Декодирование» в настоящей заявке может включать все процедуры (или их часть), выполняемые, например, над принятым кадром облака точек (включая, возможно, принятый битовый поток, где кодированы один или более кадров облака точек) для получения окончательных выходных данных, подходящих для отображения или для дальнейшей обработки в домене восстановленного облака точек. В различных вариантах осуществления настоящего изобретения такие процедуры включают одну или более процедуры, выполняемых, как правило, декодером. В различных вариантах осуществления настоящего изобретения такие процедуры, в дополнение или альтернативно, могут включать процедуры, выполняемые декодером, например, из различных реализаций, описанных в настоящей заявке.

В качестве дополнительных примеров, в одном из вариантов осуществления настоящего изобретения «декодирование» может означать только деквантование, в одном из вариантов осуществления настоящего изобретения «декодирование» может означать энтропийное декодирование, еще одном из вариантов осуществления настоящего изобретения «декодирование» может означать только дифференциальное декодирование, и в еще одном из вариантов осуществления настоящего изобретения «декодирование» может означать комбинации из деквантования, энтропийного декодирования и дифференциального декодирования. Что именно означает выражение «процедура декодирования», конкретное подмножество операций или, более общо, процедуру декодирования в целом, можно понять из контекста конкретного описания, - специалистам в данной области техники это должно быть очевидно.

В различных реализациях применяют кодирование. Аналогично приведенным выше рассуждениям о «декодировании», «кодирование» в настоящей заявке может включать все процедуры (или их часть), выполняемые, например, над входным кадром облака точек для получения кодированного битового потока. В различных вариантах осуществления настоящего изобретения такие процедуры включают одну или более процедуры, выполняемых, как правило, кодером. В различных вариантах осуществления настоящего изобретения такие процедуры, в дополнение или альтернативно, могут включать процедуры, выполняемые кодером из различных реализаций, описанных в настоящей заявке.

В качестве дополнительных примеров, в одном из вариантов осуществления настоящего изобретения «кодирование» может означать только квантование, в одном из вариантов осуществления настоящего изобретения «кодирование» может означать только энтропийное кодирование, в еще одном из вариантов осуществления настоящего изобретения «кодирование» может означать только дифференциальное кодирование, и в еще одном из вариантов осуществления настоящего изобретения «кодирование» может означать комбинации из квантования, дифференциального кодирования и энтропийного кодирования. Что именно означает выражение «процедура кодирования», конкретное подмножество операций или, более обобщенно, процедуру кодирования в целом, можно понять из контекста конкретного описания, специалистам в данной области техники это должно быть очевидно.

Также в данной заявке может упоминаться «получение» различных элементов информации. Получение информации может включать, например, одно или более из следующего: оценка информации, вычисление информации, предсказание информации или извлечение информации из памяти.

Также в данной заявке может упоминаться «доступ» к различным элементам информации. Доступ к информации может включать, к примеру, одно или более из следующего: прием информации, излечение информации (например, из памяти), сохранение информации, перемещение информации, копирование информации, вычисление информации, определение информации, предсказание информации или оценку информации.

Также в данной заявке может упоминаться «прием» различных элементов информации. Прием, аналогично «доступу» следует понимать широко. Прием к информации может включать, к примеру, одно или более из следующего: доступ к информации или излечение информации (например, из памяти). При этом прием выполняют, как правило, так или иначе, во время таких операций, как сохранение информации, обработка информации, передачи информации, перемещение информации, копирование информации, стирание информации, вычисление информации, определение информации, предсказание информации или оценка информации.

Также в данном документе термин «сигнал» обозначает, помимо прочего, указание чего-нибудь соответствующему декодеру. К примеру, в некоторых из вариантов осуществления настоящего изобретения кодер сигнализирует конкретную информацию, например, количество точек облака точек или координаты, или конфигурационные параметры датчика. Таким образом, в одном из вариантов осуществления настоящего изобретения один и тот же параметр может применяться как на стороне кодера, так и на стороне декодера. То есть, например, кодер может передавать (явно сигнализировать) конкретный параметр в декодер, в результате чего декодер может использовать этот конкретный параметр. И наоборот, если декодере уже имеется конкретный параметр, помимо прочих, то сигнализация может выполняться без передачи (явной сигнализации), просто чтобы уведомить декодер и выбрать конкретный параметр. Исключение передачи каких-либо фактических функций позволяет экономить биты в различных вариантах осуществления настоящего изобретения. Нужно понимать, что сигнализация может выполняться множеством различных способов. К примеру, для сигнализации информации соответствующему декодеру в различных вариантах осуществления настоящего изобретения могут применяться один или более синтаксических элементов, флагов и т.п. Предшествующее относится к глагольной форме «сигнализировать», однако «сигнализация» может также использоваться в данном документе как существительное.

Было рассмотрено несколько конкретных вариантов реализации настоящего изобретения. Однако нужно понимать, что в них могут быть выполнены множество различных модификаций. К примеру, элементы различных реализаций могут комбинироваться, дополняться, модифицироваться или удаляться, в результате чего могут быть получены другие реализации. При этом специалисты в данной области техники должны понимать, что вместо рассмотренных здесь могут применяться другие структуры или процедуры, и результирующие реализации будут выполнять по существу ту же функцию (или функции), по существу тем же методом (или методами), с получением по существу того же результата (или результатов), что и описанные реализации.

Соответственно, подобные, а также другие реализации, попадают в объем настоящей заявки.

Похожие патенты RU2839062C2

название год авторы номер документа
Способ и устройство для энтропийного кодирования/декодирования данных геометрии облака точек, захваченных вращающейся головкой датчиков 2021
  • Лассерр Себастьян
  • Такет Джонатан
  • Чампел Мэри-Люк Джорджес Генри
RU2815072C1
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ГЕОМЕТРИЧЕСКИХ ДАННЫХ ОБЛАКА ТОЧЕК, ОБНАРУЖЕННЫХ ПРИ ПОМОЩИ ПО МЕНЬШЕЙ МЕРЕ ОДНОГО ДАТЧИКА 2022
  • Лассерр Себастьян
  • Такет Джонатан
RU2836666C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ДАННЫХ ГЕОМЕТРИИ ОБЛАКА ТОЧЕК, ЗАХВАЧЕННЫХ ВРАЩАЮЩЕЙСЯ ГОЛОВКОЙ ДАТЧИКОВ 2021
  • Чампел Мэри-Люк Джорджес Генри
  • Лассерр Себастьян
RU2824331C1
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ГЕОМЕТРИЧЕСКИХ ДАННЫХ ОБЛАКА ТОЧЕК, СОБРАННЫХ ВРАЩАЮЩЕЙСЯ ИЗМЕРИТЕЛЬНОЙ ГОЛОВКОЙ 2021
  • Лассер Себастьен
  • Гао Шуо
  • Такет Джонатан
RU2832271C2
Способ и устройство квантования сферических координат, используемых для кодирования/декодирования данных геометрии облака точек 2021
  • Такет Джонатан
  • Лассерр Себастьян
RU2818299C1
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ОБЛАКА ТОЧЕК, ЗАХВАЧЕННОГО ВРАЩАЮЩЕЙСЯ ИЗМЕРИТЕЛЬНОЙ ГОЛОВКОЙ 2022
  • Такет Джонатан
  • Лассерр Себастьян
RU2831516C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ГЕОМЕТРИЧЕСКИХ ДАННЫХ ОБЛАКА ТОЧЕК, ОБНАРУЖЕННЫХ С ПОМОЩЬЮ, ПО МЕНЬШЕЙ МЕРЕ, ОДНОГО ДАТЧИКА 2022
  • Лассерре, Себастьен
  • Такэ, Джонатан
RU2837738C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ГЕОМЕТРИЧЕСКИХ ДАННЫХ ОБЛАКА ТОЧЕК, ОБНАРУЖЕННЫХ С ПОМОЩЬЮ, ПО МЕНЬШЕЙ МЕРЕ, ОДНОГО ДАТЧИКА 2022
  • Лассерре Себастьен
  • Такэ Джонатан
RU2834924C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ГЕОМЕТРИЧЕСКИХ ДАННЫХ ОБЛАКА ТОЧЕК, ЗАХВАЧЕННЫХ С ПОМОЩЬЮ ВРАЩАЮЩЕЙСЯ ГОЛОВКИ С ДАТЧИКАМИ 2021
  • Лассерре, Себастьен
  • Такэ, Джонатан
RU2832213C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ГЕОМЕТРИЧЕСКИХ ДАННЫХ ОБЛАКА ТОЧЕК, ЗАХВАЧЕННЫХ ПРИ ПОМОЩИ ВРАЩАЮЩЕЙСЯ ИЗМЕРИТЕЛЬНОЙ ГОЛОВКИ 2021
  • Такет Джонатан
  • Лассерр Себастьян
RU2824307C2

Иллюстрации к изобретению RU 2 839 062 C2

Реферат патента 2025 года СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ГЕОМЕТРИЧЕСКИХ ДАННЫХ ОБЛАКА ТОЧЕК, ОБНАРУЖЕННЫХ ПО МЕНЬШЕЙ МЕРЕ ОДНИМ ДАТЧИКОМ

Изобретение относится к области кодирования и декодирования геометрических данных облака точек, обнаруженных по меньшей мере одним датчиком. Технический результат заключается в повышении эффективности кодирования. Осуществляют кодирование (110), в битовый поток, данных (Snext), указывающих, является ли занятая грубая точка (Pnext), соответствующая точке облака точек, запаздывающей занятой грубой точкой, при этом занятую грубую точку считают запаздывающей занятой грубой точкой (Pnext), если ее порядковый индекс в лексикографическом порядке меньше, чем порядковый индекс первой опорной грубой точки (Pref), соответствующей ранее кодированной точке облака точек. Занятая грубая точка является зарегистрированной точкой облака точек, которая определяется из одного индекса s отсчета, соответствующего моменту времени измерения вдоль пути измерения, и одного индекса датчика, соответствующего датчику. 4 н. и 10 з.п. ф-лы, 21 ил.

Формула изобретения RU 2 839 062 C2

1. Способ кодирования, в битовый поток, геометрических данных облака точек, представленных упорядоченными грубыми точками, занимающими часть дискретных местоположений из множества дискретных местоположений двумерного пространства, при этом упомянутые грубые точки упорядочены в лексикографическом порядке по их координатам в двумерном пространстве, при этом способ включает:

- кодирование (110), в битовый поток, данных (Snext), указывающих, является ли занятая грубая точка (Pnext), соответствующая точке облака точек, запаздывающей занятой грубой точкой, при этом занятую грубую точку считают запаздывающей занятой грубой точкой (Pnext), если ее порядковый индекс в лексикографическом порядке меньше, чем порядковый индекс первой опорной грубой точки (Pref), соответствующей ранее кодированной точке облака точек, при этом занятая грубая точка является зарегистрированной точкой облака точек, которая определяется из одного индекса s отсчета, соответствующего моменту времени измерения вдоль пути измерения, и одного индекса датчика, соответствующего датчику;

- если данные (Snext) указывают на то, что занятая грубая точка является запаздывающей занятой грубой точкой (Pnext), то

получение (130) разности (Δolate) порядковых индексов для запаздывающей точки, между порядковым индексом запаздывающей занятой грубой точки (Pnext) и порядковым индексом второй опорной грубой точки (P’ref); и

кодирование (140), в битовый поток, модуля разности порядковых индексов для запаздывающей точки;

при этом модуль разности порядковых индексов для запаздывающей точки кодируют при помощи кодирования, в битовый поток, двух положительных смещений (φoffset, soffset, λoffset), соответствующих координатам в двумерном пространстве; причем, когда пространство двумерных координат является пространством двумерных координат (φ, λ), первое положительное смещение является положительным смещением φoffset азимутального угла, а второе положительное смещение является положительным смещением λoffset индекса датчика; или, когда пространство двумерных координат является пространством двумерных координат (s, λ), первое положительное смещение является положительным смещением soffset индекса отсчета, а второе положительное смещение является положительным смещением λoffset индекса датчика.

2. Способ по п. 1, в котором упомянутая первая опорная грубая точка (Pref) является последней кодированной занятой грубой точкой (Plast), или ранее кодированной грубой точкой (Phigh) с наивысшим порядковым номером в лексикографическом порядке, при этом упомянутая вторая опорная грубая точка (P’ref) является либо первой опорной грубой точкой, либо грубой точкой, порядковый номер которой равен порядковому номеру первой опорной грубой точки, сдвинутому на величину смещения.

3. Способ по п. 1 или 2, в котором данные (Snext) являются двоичными данными, указывающими, является ли занятая грубая точка (Pnext), соответствующая точке облака точек, запаздывающей занятой грубой точкой, и энтропийно кодируются на основе по меньшей мере одних других двоичных данных (Snext, i), указывающих, является ли по меньшей мере одна ранее кодированная грубая точка запаздывающей занятой грубой точкой.

4. Способ по любому из пп. 1-3, в котором кодирование одного из положительных смещений (λoffset) включает кодирование первого положительного значения (λoffset,1) и второго положительного значения (λoffset,2), сумма которых равна упомянутому положительному смещению (λoffset).

5. Способ по п. 4, в котором кодирование первого или второго положительных значений включает энтропийное кодирование последовательности двоичных данных, являющихся представлением упомянутых первого или второго положительных значений.

6. Способ по п. 4 или 5, в котором кодирование упомянутого другого положительного смещения (φoffset, soffset) включает энтропийное кодирование последовательности двоичных данных, являющихся представлением упомянутого другого положительного смещения.

7. Способ декодирования, из битового потока, геометрических данных облака точек, представленных упорядоченными грубыми точками, занимающими часть дискретных местоположений из множества дискретных местоположений двумерного пространства, при этом упомянутые грубые точки упорядочены в лексикографическом порядке по их координатам в двумерном пространстве, при этом способ включает:

- декодирование (210), из битового потока, данных (Snext), указывающих, является ли занятая грубая точка (Pnext), соответствующая точке облака точек, запаздывающей занятой грубой точкой, при этом занятую грубую точку считают запаздывающей занятой грубой точкой (Pnext), если ее порядковый индекс в лексикографическом порядке меньше, чем порядковый индекс первой опорной грубой точки (Pref), соответствующей ранее декодированной точке облака точек, при этом занятая грубая точка является зарегистрированной точкой облака точек, которая определяется из одного индекса s отсчета, соответствующего моменту времени измерения вдоль пути измерения, и одного индекса датчика, соответствующего датчику; и

- если данные (Snext) указывают на то, что занятая грубая точка является запаздывающей занятой грубой точкой (Pnext), декодирование (230), из битового потока, модуля разности (Δolate) порядковых индексов для запаздывающей точки между порядковым индексом запаздывающей грубой точки (Pnext) и порядковым индексом второй опорной грубой точки (P’ref);

при этом модуль разности порядковых индексов для запаздывающей точки декодируют при помощи декодирования, из битового потока, двух положительных смещений (φoffset, soffset, λoffset), соответствующих координатам в двумерном пространстве; причем, когда пространство двумерных координат является пространством двумерных координат (φ, λ), первое положительное смещение является положительным смещением φoffset азимутального угла, а второе положительное смещение является положительным смещением λoffset индекса датчика; или, когда пространство двумерных координат является пространством двумерных координат (s, λ), первое положительное смещение является положительным смещением soffset индекса отсчета, а второе положительное смещение является положительным смещением λoffset индекса датчика.

8. Способ по п. 7, в котором упомянутая первая опорная грубая точка (Pref) является последней декодированной занятой грубой точкой (Plast), или ранее декодированной грубой точкой (Phigh) с наивысшим порядковым номером в лексикографическом порядке, при этом упомянутая вторая опорная грубая точка (P’ref) является либо первой опорной грубой точкой, либо грубой точкой, порядковый номер которой равен порядковому номеру первой опорной грубой точки, сдвинутому на величину смещения.

9. Способ по п. 7 или 8, в котором данные (Snext) являются двоичными данными, указывающими, является ли занятая грубая точка (Pnext), соответствующая точке облака точек, запаздывающей занятой грубой точкой, и энтропийно декодируются на основе по меньшей мере одних других двоичных данных (Snext, i), указывающих, является ли по меньшей мере одна ранее декодированная грубая точка запаздывающей занятой грубой точкой.

10. Способ по любому из пп. 7-9, в котором декодирование одного из положительных смещений (λoffset) включает декодирование первого положительного значения (λoffset,1) и второго положительного значения (λoffset,2), сумма которых равна упомянутому положительному смещению (λoffset).

11. Способ по п. 10, в котором декодирование первого или второго положительных значений включает энтропийное декодирование последовательности двоичных данных, являющихся представлением упомянутых первого или второго положительных значений.

12. Способ по п. 10 или 11, в котором декодирование упомянутого другого положительного смещения (φoffset, soffset) включает энтропийное декодирование последовательности двоичных данных, являющихся представлением упомянутого другого положительного смещения.

13. Устройство кодирования, в битовый поток, геометрических данных облака точек, представленных упорядоченными грубыми точками, занимающими часть дискретных местоположений из множества дискретных местоположений двумерного пространства, при этом упомянутые грубые точки упорядочены в лексикографическом порядке по их координатам в двумерном пространстве, при этом устройство включает по меньшей мере один процессор, сконфигурированный для выполнения следующего:

- кодирование, в битовый поток, данных (Snext), указывающих, является ли занятая грубая точка (Pnext), соответствующая точке облака точек, запаздывающей занятой грубой точкой, при этом занятую грубую точку считают запаздывающей занятой грубой точкой (Pnext), если ее порядковый индекс в лексикографическом порядке меньше, чем порядковый индекс первой опорной грубой точки (Pref), соответствующей ранее кодированной точке облака точек, при этом занятая грубая точка является зарегистрированной точкой облака точек, которая определяется из одного индекса s отсчета, соответствующего моменту времени измерения вдоль пути измерения, и одного индекса датчика, соответствующего датчику;

- если данные (Snext) указывают на то, что занятая грубая точка является запаздывающей занятой грубой точкой (Pnext), то

получение разности (Δolate) порядковых индексов для запаздывающей точки между порядковым индексом запаздывающей занятой грубой точки (Pnext) и порядковым индексом второй опорной грубой точки (P’ref); и

кодирование, в битовый поток, модуля разности порядковых индексов для запаздывающей точки;

при этом модуль разности порядковых индексов для запаздывающей точки кодируют при помощи кодирования, в битовый поток, двух положительных смещений (φoffset, soffset, λoffset), соответствующих координатам в двумерном пространстве; причем, когда пространство двумерных координат является пространством двумерных координат (φ, λ), первое положительное смещение является положительным смещением φoffset азимутального угла, а второе положительное смещение является положительным смещением λoffset индекса датчика; или, когда пространство двумерных координат является пространством двумерных координат (s, λ), первое положительное смещение является положительным смещением soffset индекса отсчета, а второе положительное смещение является положительным смещением λoffset индекса датчика.

14. Устройство декодирования, из битового потока, геометрических данных облака точек, представленных упорядоченными грубыми точками, занимающими часть дискретных местоположений из множества дискретных местоположений двумерного пространства, при этом упомянутые грубые точки упорядочены в лексикографическом порядке по их координатам в двумерном пространстве, при этом устройство включает по меньшей мере один процессор, сконфигурированный для выполнения следующего:

- декодирование, из битового потока, данных (Snext), указывающих, является ли занятая грубая точка (Pnext), соответствующая точке облака точек, запаздывающей занятой грубой точкой, при этом занятую грубую точку считают запаздывающей занятой грубой точкой (Pnext), если ее порядковый индекс в лексикографическом порядке меньше, чем порядковый индекс первой опорной грубой точки (Pref), соответствующей ранее декодированной точке облака точек, при этом занятая грубая точка является зарегистрированной точкой облака точек, которая определяется из одного индекса s отсчета, соответствующего моменту времени измерения вдоль пути измерения, и одного индекса датчика, соответствующего датчику; и

- если данные (Snext) указывают на то, что занятая грубая точка является запаздывающей занятой грубой точкой (Pnext), декодирование, из битового потока, модуля разности (Δolate) порядковых индексов для запаздывающей точки между порядковым индексом запаздывающей грубой точки (Pnext) и порядковым индексом второй опорной грубой точки (P’ref);

при этом модуль разности порядковых индексов для запаздывающей точки декодируют при помощи декодирования, из битового потока, двух положительных смещений (φoffset, soffset, λoffset), соответствующих координатам в двумерном пространстве; причем, когда пространство двумерных координат является пространством двумерных координат (φ, λ), первое положительное смещение является положительным смещением φoffset азимутального угла, а второе положительное смещение является положительным смещением λoffset индекса датчика; или, когда пространство двумерных координат является пространством двумерных координат (s, λ), первое положительное смещение является положительным смещением soffset индекса отсчета, а второе положительное смещение является положительным смещением λoffset индекса датчика.

Документы, цитированные в отчете о поиске Патент 2025 года RU2839062C2

US 20190051017 A1, 14.02.2019
WO 2021084295 A1, 06.05.2021
US 20200175725 A1, 04.06.2020
CN 113259678 A, 13.08.2021
CN 109345619 A, 15.02.2019
УСТРОЙСТВО КОДИРОВАНИЯ И СПОСОБ КОДИРОВАНИЯ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ 2016
  • Танака Дзунити
RU2721678C2

RU 2 839 062 C2

Авторы

Такет Джонатан

Лассерр Себастьян

Даты

2025-04-28Публикация

2022-06-21Подача