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

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

Ссылка на родственную заявку

Согласно настоящей заявке испрашивается приоритет в соответствии с заявкой на Европейский патент № ЕР21305460.4, поданной 9 апреля 2021 г., которая ссылкой полностью включена в настоящий документ.

Область техники, к которой относится настоящее изобретение

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

Предшествующий уровень техники настоящего изобретения

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

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

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

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

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

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

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

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

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

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

До последнего времени технология сжатия облака точек (называемая технологией РСС) не применялась на массовом рынке и не было доступно никакого стандартного кодека для облака точек. В 2017 г. рабочая группа по стандартизации ISO/JCT1/SC29/WG11, известная также как группа экспертов по движущимся изображениям (Moving Picture Experts Group - MPEG), инициировала работы по сжатию облака точек. Эти работы привели к созданию двух стандартов, а именно

- MPEG-I часть 5 (ISO/IEC 23090-5) или сжатие облака точек на основе видео (V-РСС)

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

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

В методе кодирования G-PCC имеются две схемы для сжатия захваченных геометрических данных.

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

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

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

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

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

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

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

Регулярное распределение точек по азимутальному углу наблюдалось для геометрических данных, захваченных вращающейся головкой с датчиками, как показано на фиг. 3. Такая регулярность используется в методе G-PCC для получения квазиодномерного представления облака точек, в котором, с точностью до шумов, только радиус r3D принадлежит к величинам с непрерывным диапазоном изменения, в то время как углы φ и θ принимают только дискретное число значений , где I является количеством азимутальных углов, используемым для захвата точек, и , где K является количеством датчиков во вращающейся головке 10 с датчиками. В основном метод G-PCC работает с захваченными вращающейся головкой с датчиками редкими геометрическими данными, расположенными на двумерной дискретной угловой плоскости (φ, θ), как показано на фиг. 3, вместе со значением радиуса r3D для каждой точки.

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

Более точнее можно сказать, что дерево заполненности интенсивно использует режим DCM и энтропийно кодирует непосредственное место расположения точек внутри узла с помощью контекстно-адаптивного энтропийного кодера. Затем контексты получается из местного преобразования мест расположения точек в координаты (φ, θ) и из расположения этих координат относительно дискретных координат (φi, θk), полученных из уже закодированных точек.

Прогнозное дерево прямо кодирует первый вариант расположения текущей точки Р в сферической системе координат (r, φ, θ), где r может быть либо радиусом r3D, либо спроецированным на горизонтальную плоскость ху радиусом r2D, как показано на фиг. 4 символом r2D, с использованием квазиодномерного характера (r, φi, θk) этой системы координат. В дальнейшем под радиусом r будет подниматься радиус r2D. Затем сферические координаты (r, φ, θ) преобразуются в трехмерные декартовые координаты (x,y,z) и невязка xyz кодируется для обработки ошибок при преобразовании координат, приближений для углов наклона и азимутальных углов и возможного шума.

Как объяснялось выше, представление захваченных с помощью вращающейся головки 10 с датчиками геометрических данных облака точек в системе координат (r, φ, θ) обеспечивает определенные преимущества. Угловые координаты (φ, θ) можно эффективно сжать благодаря квазидискретному (с точностью до шумов) характеру углов. Однако радиус r можешь принимать любое значение в зависимости от расстояния зондируемого объекта до вращающейся головки 10 с датчиками. Также обеспечивается преимущество, состоящее в том, что радиус r точки из облака точек можно предсказать по радиусам соседних уже закодированных точек и закодировать невязку радиуса с помощью способа 100, как показано на фиг. 5.

На фиг. 5 показан способ 100 кодирования невязки радиуса в битовый поток согласно известному уровню техники.

На стадии 110 предсказанный радиус rpred выбирается в качестве предсказания значения радиуса r текущей точки.

Пример предсказанного радиуса rpred дается формулой (7), как описано ниже.

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

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

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

Другой кандидат режима предсказания может равняться (r0, φ0, θ0), где r0, φ0 и θ0 являются соответственно радиусом, азимутальным углом и углом наклона точки, ассоциированной с родительским узлом текущего узла.

Другой кандидат режима предсказания может равняться линейному предсказанию радиуса, азимутального угла и угла наклона (r0, φ0, θ0) точки, ассоциированной с родительским узлом текущего узла, и радиуса, азимутального угла и угла наклона (r1, φ1, θ1) точки, ассоциированной с узлом родителя родительского узла. Например, кандидат режима предсказания задается выражением 2*(r0, φ0, θ0) - (r1, φ1, θ1).

Другой кандидат режима предсказания может быть равен линейному предсказанию радиуса, азимутального угла и угла наклона (r0, φ0, θ0) точки, ассоциированной с родительским узлом текущего узла, радиуса, азимутального угла и угла наклона (r1, φ1, θ1) точки, ассоциированной с узлом родителя родительского узла, и радиуса, азимутального угла и угла наклона (r2, φ2, θ2) точки, ассоциированной с узлом родителя узла родителя родительского узла.

Например, кандидат режима предсказания задается выражением (r0, φ0, θ0)+(r1, φ1, θ1)-(r2, φ2, θ2).

На стадии 130 вычисляется невязка радиуса rres=r-rpred.

На стадии 140 первый флаг f0 сигнализируется в битовом потоке В для указания, равна ли невязка радиуса rres нулю или нет.

Если невязка радиуса rres равна нулю, кодирование невязки радиуса завершено и способ выполняет итерацию для кодирования невязки радиуса следующей точки облака точек.

В противном случае на стадии 150 амплитуда |rres|-1 кодируется в битовом потоке В, где х означает «абсолютная величина х». Обычно амплитуда кодируется с помощью последовательности флагов (каждый флаг означает, равна ли амплитуда конкретному значению) и/или с использованием кодера exp-Golomb (кодирование в экспоненциальный код Голомба). На стадии 160 знак sres кодируется в битовом потоке, обычно с использованием одного бита на знак. Затем способ выполняет итерацию для кодирования невязки радиуса следующей точки облака точек.

На фиг. 6 показан способ 200 декодирования радиуса из битового потока согласно известному уровню техники.

На стадии 210 первый флаг f0 извлекается из битового потока В.

Если первый флаг f0 указывает, что невязка радиуса текущей точки равна нулю, то декодирование невязки радиуса завершено.

В противном случае на стадии 220 амплитуда |rres| - 1 декодируется из битового потока В. На стадии 230 знак sres невязки радиуса декодируется из битового потока В. На стадии 240 невязка радиуса rres со знаком получается из декодированного знака sres и декодированной амплитуды.

На стадии 250 предсказанный радиус rpred получается в режиме предсказания, как объясняется в описании фиг. 5. Затем декодированный радиус rdec получается при сложении декодированной невязки радиуса rres и предсказанного радиуса rpred. Наконец, способ выполняет итерацию для декодирования невязки радиуса и получения декодированного радиуса rdec следующий точки облака точек.

На фиг. 7 показан кодер облака точек, который подобен кодеру, основанному на прогнозном дереве метода G-PCC с использованием показанного на фиг. 5 способа 100 кодирования невязки радиуса.

Сначала декартовые координаты (x,y,z) точек из облака точек преобразуются в сферические координаты (r, φ, θ) с помощью преобразования (r, φ, θ)=C2A(x,y,z), где r является радиусом r2D, проецированным на горизонтальную плоскость ху, как показано на фиг. 4, φ является азимутальным углом и θ является углом наклона.

Функция преобразования С2А(.) частично задается выражениями:

где round() обозначает операцию округления до ближайшего целого значения, sqrt() является функцией извлечения квадратного корня, atan2(y,x) является арктангенсом (arctg) от величины у/х. Величины Δr и Δφ являются шагами квантования.

Угол θ используется ниже в качестве значения угла наклона, которое можно получить, например, с помощью формулы

где atan(.) является функции арктангенса (arctg). На практике, например, в методе G-РСС, представление 9 является целым значением, представляющим угол наклона с индексом k в угле θk (то есть это индекс k-го угла наклона), и поэтому описанные ниже выполняемые с θ операции (предсказание, (де)кодирование невязки, и т.п.) будут вместо этого выполняться с индексированным углом наклона.

Сферические координаты невязки (rres, φres, θres) между сферическими координатами (r, φ, θ) и предсказанными сферическими координатами (rpred, φpred, θpred) затем определяются по формуле:

где (rpred, φpred, θpred) являются сферическими координатами, полученными в режиме предсказания, как объясняется в описании фиг. 5.

Сферические координаты невязки (rres, φres, θres) квантуются с помощью оператора Q(.) в квантованные сферические координаты невязки Q(rres, φres, θres), которые закодированы в битовом потоке В. Квантованная невязка радиуса rres может быть закодирована в битовый поток В с использованием способа 100 кодирования, показанного на фиг. 5.

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

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

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

Предсказанные декартовые координаты (xpred, ypred, zpred) получаются с помощью обратного преобразования декодированных сферических координат (rdec, φdec, θdec) по формуле:

где декодированные сферические координаты (rdec, φdec, θdec) на стороне декодера могут быть получены по формуле:

Декодированные сферические координаты невязки (rres,dec, φres,dec, θres,dec) могут быть результатом обратного квантования (inverse quantization - IQ) квантованных сферических координат невязки Q(rresres, θres).

После обратного преобразования декодированные сферические координаты (rdec, φdec, θdec) могут быть представлены выражениями:

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

Невязки декартовых координат (xres,yres,zres) могут быть оквантованы (оператором Q) и квантованные невязки декартовых координат Q(xres,yres,zres) могут быть закодированы в битовый поток В.

Невязки декартовых координат могут быть закодированы без потерь, когда шаги квантования x,y,z равны оригинальной точности точки (обычно 1), или могут быть закодированы с потерями, когда шаги квантования больше оригинальной точности точки (обычно шаги квантования больше 1).

Декодированные декартовые координаты (xdec,ydec,zdec), которые получены декодером, могут быть представлены в виде:

На фиг. 8 показан декодер облака точек, который подобен декодеру, основанному на прогнозном дереве метода G-PCC с использованием показанного на фиг. 6 способа 200 декодирования невязки радиуса.

Квантованные невязки сферических координат Q(rresres, θres) декодируются из битового потока В. Квантованные невязки сферических координат Q(rres, φres, θres) подвергается обратному квантованию (деквантованию) для получения декодированных невязок сферических координат (rres,dec, φres,des, θres,dec). Квантованная невязка радиуса Q(rres,dec) может быть декодирована из битового потока В с использованием способа 200 декодирования, показанного на фиг. 6.

Декодированные сферические координаты (rdec, θdec, θdec) получаются с помощью формулы (3), где (rpred, φpred, θpred) являются сферическими координатами, полученными с помощью режима предсказания, как объясняется в описании фиг. 5, и с помощью того же самого способа, который использовался в способе кодирования. Затем предсказанные декартовые координаты (xpred, ypred, zpred) получаются с помощью формулы (2).

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

Число μ извлекается из битового потока В для каждой точки облака точек (то есть для каждого узла прогнозного дерева).

Квантованные декартовые координаты невязки Q(xres,yres,zres) декодируются из битового потока и обратно квантуются (оператором IQ) для получения деквантованных декартовых координат lQ(Q(xres,yres,zres)). Декодированные декартовые координаты (xdec,ydec,zdec) могут быть представлены формулой (4).

В заявке на Европейский патент № ЕР20306672 раскрыты способы кодирования/декодирования с одной цепочкой в качестве альтернативы к способам кодирования/декодирования, показанным на фиг. 7 и 8.

Согласно способу кодирования с одной цепочкой, трехмерные декартовые координаты точек облака точек представляются в двухмерной системе координат (Сφ, λ) вместе со значениями радиуса r (r2D или r3D). Координатой Сφ грубого азимутального угла является индексированный азимутальный угол для вращающейся головки с датчиками, дискретные значения которого обозначаются как что соответствует эффективному повороту головки с датчиками на угол φi. Координата λ является индексом датчика, дискретные значения который обозначаются как λk . Величина радиуса r принадлежит непрерывному диапазону значений.

Для каждой точки облака точек получаются индекс датчика λ (λ является одним из индексов датчика λk , ассоциированный с датчиком, который захватил эту точку, индекс азимутального угла Сφ (Сφ является одним из дискретных индексов угла Сφi , представляющий угол захвата вышеупомянутым датчиком, и значение радиуса r сферических координат этой точки.

Индекс датчика λ и индекс азимутального угла Сφ получаются с помощью преобразования трехмерных декартовых координат (x,y,z), описывающих трехмерное расположение захваченной точки. Эти трехмерные декартовые координаты (x,y,z) могут быть выведены из датчиков вращающейся головки 10.

Например, в предположении, что угол φstep является элементарным шагом азимутального угла между двумя последовательными зондированиями датчика головки с данным индексом датчика λ, и в предположении, что значения арктангенса отношения у/х, возвращаемые функции atan2(y, х), принимают значение в интервале [0; 2*π], Сφ можно получить по формуле:

где φ=atan2(y, х). Тогда угол φi поворота можно получить по формуле:

В этом случае набор дискретных углов φi (0≤i≤I) по существу определяется формулой φi=i*φstep.

Также λ может быть определен как индекс λk датчика, угол наклона θk которого является ближайшим к углу наклона θ точки из облака точек.

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

Согласно варианту осуществления, точки упорядочиваются в лексикографическом порядке, сначала по азимутальному углу, и потом по индексу датчика. Порядковый индекс о(Р) точки Р получается по формуле:

Согласно другому варианту осуществления, точки упорядочиваются в лексикографическом порядке, сначала по индексу датчика, и потом по азимутальному углу. Порядковый индекс о(Р) точки Р получается по формуле:

Закодированные в битовый поток В упорядоченные точки могут содержать разницу закодированных порядковых индексов , каждая из которых представляет собой разность между порядковыми индексами двух следующих друг за другом точек Pn-1 и Pn (для n=2 до N):

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

Получив порядковый индекс о(Р1) первой точки и разницы порядков Δ0n, можно рекурсивно восстановить порядковый индекс о(Pn) любой точки Pn по формуле:

После этого индексы датчиков λn и индексы азимутальных углов Сφn, ассоциированных с точкой Pn, получаются по формулам:

где операция деления / K является целым делением (также называется евклидовым делением). Следовательно, о(Р1) и Δon являются альтернативными представлениями величин λn и Сφn.

На кодирующей стороне невязка азимутального угла φres описывается формулой:

где φpred является предсказанным азимутальным углом.

Таким образом, операция кодирования упорядоченных точек в битовой поток В может также содержать операцию кодирования невязки (Qrres, Qφres,res), ассоциированной с упорядоченными точками, которая описывается формулой:

где Qrres является квантованной невязкой радиуса, Qφres является квантованной невязкой азимутального угла, Qφres,res является невязкой квантованной невязки азимутального угла и Qφres,pred является квантованной предсказанной невязкой азимутального угла. Индекс угла наклона θn для каждой точки Pn облака точек не кодируется с предсказанием.

Квантованная невязка радиуса Qrres получается при применении операции квантования к невязке радиуса rres=r-rpred, где rpred равен сферической координате, полученной в режиме предсказания, как объясняется в описании фиг. 5.

Квантованная невязка радиуса Qrres кодируется в битовый поток В с помощью метода 100 кодирования, показанного на фиг. 5, так что ее можно декодировать с помощью метода 200 декодирования, показанного на фиг. 6, и обратно квантуется для получения деквантованной невязки радиуса IQrres, равной декодированной невязке радиуса rres,dec.

Невязка азимутального угла φres описывается формулой:

где φpred является предсказанным азимутальным углом, который определяется по формуле (7).

Квантованная невязка азимутального угла Qφres получается при применении операции квантования Q к невязке азимутального угла φres, и она кодируется в битовый поток В.

Декодированная невязка азимутального угла φres,dec равна деквантованной невязке азимутального угла IQφres, полученной при применении операции обратного квантования IQ. Декодированный азимутальный угол φdec затем получается при сложении декодированной невязки азимутального угла φres,dec с предсказанным азимутальным углом φpred, как это описано формулой (7):

Операция кодирования упорядоченных точек в битовый поток В также содержит операцию получения невязки декартовых координат (xres,yres,zres) для трехмерных декартовых координат упорядоченных точек по формуле

где (x,y,z) являются трехмерными декартовыми координатами упорядоченных точек, a (xpred, ypred, zpred) являются предсказанными декартовыми координатами, вычисляемыми по формулам:

Невязки декартовых координат (xres,yres,zres) квантуются в квантованные невязки декартовых координат Q(xres,yres,zres), которые кодируются в битовый поток В.

Невязки декартовых координат могут быть закодированы без потерь, когда шаги квантования x,y,z равны оригинальной точности точки (обычно 1), или могут быть закодированы с потерями, когда шаги квантования больше оригинальной точности точки (обычно шаги квантования больше 1).

На стороне декодирования разницы порядкового индекса Δon (n=2 до N) декодируются из битового потока В. Каждая разница порядкового индекса Δon декодируется для текущей точки Pn.

Порядковый индекс о(Pn) получается для текущей точки Pn по формуле:

Индекс датчика λn, ассоциированный с датчиком, который захватил текущую точку, и азимутальный угол φn, представляющий угол захвата вышеупомянутым датчиком, получаются из порядкового индекса о(Pn) (формулы (5) и (6)).

Декодированная квантованная невязка радиуса Qrres,dec может быть декодирована из битового потока В с использованием способа 200 декодирования, показанного на фиг. 6, а декодированная невязка радиуса rres,dec получается при применении операции обратного квантования к Qrres,dec.

Затем декодированный радиус rdec определяется по формуле:

где rpred является сферической координатой, полученной в режиме предсказания, как объясняется в описании фиг. 5.

Квантованная невязка азимутального угла Qφres декодируется из битового потока В. Декодированная невязка азимутального угла φres,dec получается с помощью обратного квантования:

Затем декодированные сферические координаты получаются по формуле:

Декодированные декартовые координаты (xdec,ydec,zdec) получаются по формуле:

где IQ(Q(xres,yres,zres)) представляют деквантованные (ранее) квантованные невязки декартовых координат, которые декодированы из битового потока В.

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

Вследствие этого большая часть битового потока состоит из данных, представляющих радиус. В наших испытаниях мы обнаружили, что данные радиуса составляют от 70% до 90% полного битового потока. Следовательно, очень важно решить проблему сжатия данных радиуса, например, невязки радиуса rres, чтобы получить общую лучшую эффективность сжатия либо с помощью схемы кодирования/декодирования с прогнозным деревом G-PCC, либо с помощью схемы кодирования/декодирования с одной цепочкой.

Краткое описание настоящего изобретения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Краткое описание фигур

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

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

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

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

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

На фиг. 5 показан способ 100 кодирования невязки радиуса в битовый поток согласно известному уровню техники;

На фиг. 6 показан способ 200 декодирования радиуса из битового потока согласно известному уровню техники;

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

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

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

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

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

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

На фиг. 13 показана блок-схема стадий способа 500 адаптивного упорядочивания радиуса захваченных точек, имеющих те же самые координаты (Сφ, λ) согласно, по меньшей мере, одному пояснительному варианту осуществления настоящего изобретения;

На фиг. 14 показано применение способа 500, который показан на фиг. 13;

На фиг. 15 показано применение способа 500, который показан на фиг. 13;

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

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

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

Описание пояснительных вариантов осуществления

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

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

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

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

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

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

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

Настоящее изобретение предусматривает энтропийное кодирование/декодирование знака невязки радиуса, ассоциированной с точкой облака точек на основании знака предварительно энтропийно кодированной/декодированной ненулевой невязки радиуса.

Обычно знак невязки любого типа никак нельзя предсказать, что приводит к стоимости кодирования этого знака в 1 несжимаемый бит в случае, когда невязка не равна нулю. Однако, когда геометрические данные захватываются вращающейся головкой 10 с датчиками, радиус захваченных точек естественным образом изменяется монотонно, как показано на фиг. 9. С левой стороны фигуры показаны лучи датчиков, излученные из датчика в сторону объекта, который здесь схематично показан в виде прямоугольника серого оттенка. Здесь захвачено семь точек, каждая для конкретного значение азимутального угла φ. График с правой стороны фигуры показывает изменение радиуса семи захваченных точек в зависимости от значения азимутального угла. На графике хорошо видна монотонность изменения радиуса захваченных точек, которая бывает отрицательной (радиус уменьшается при возрастании азимутального угла) и положительной (радиус увеличивается при возрастании азимутального угла). Следовательно, если значения радиусов r текущих точек предсказаны по значениям радиусов rprec предыдущих точек, захваченных тем же самым датчиком, то невязка радиуса rres=r-rprev имеет локально постоянный знак, это либо последовательность отрицательных невязок радиуса, либо последовательность положительных невязок радиуса. Конечно, это не всегда так, но это статистически значимо настолько, что можно использовать это свойство для улучшения сжатия знаков sres невязок радиуса rres.

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

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

Этот способ описан для кодирования невязки радиуса rres текущей точки облака точек, но он расширен до кодирования полученной квантованной невязки радиуса Qrres, например, как объясняется выше при описании фиг. 7 или кодирования с одной цепочкой.

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

На стадии 310 получается знак sres,prev предварительно энтропийно закодированной ненулевой невязки радиуса rres,prev, ассоциированной с предварительной точкой облака точек.

На стадии 320 контекст Ctxsign, используемый в контекстном энтропийном кодировании для кодирования знака sres невязки радиуса rres текущей точки, определяется на основании знака sres,prev.

Например, если знак sres,prev положительный, то получается первый контекст Ctxsign,1, а если знак sres,prev отрицательный, то получается второй контекст Ctxsign,2.

На стадии 330 знак sres невязки радиуса rres кодируется в битовом потоке В с помощью контекстного энтропийного кодирования с использованием контекста Ctxsign.

Согласно показанной на фиг. 10 блок-схеме, амплитуда невязки радиуса rres кодируется раньше кодирования знака sres невязки радиуса rres. Согласно альтернативному варианту, знак sres невязки радиуса rres может быть закодирован раньше кодирования амплитуды невязки радиуса rres.

Согласно одному варианту, используется контекстно-адаптивный двоичный арифметический кодер (Context Adaptive Binary Arithmetic Coder - CABAC).

На фиг. 11 показана блок-схема стадий способа 400 декодирования невязки радиуса rres из битового потока В согласно, по меньшей мере, одному пояснительному варианту осуществления настоящего изобретения.

Этот способ описан для декодирования невязки радиуса rres текущей точки облака точек, но он расширен до декодирования полученной квантованной невязки радиуса Qrres, например, как объясняется выше при описании фиг. 8 или кодирования с одной цепочкой.

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

На стадии 410 получается знак sres,prev предварительно энтропийно декодированной ненулевой невязки радиуса rres,prev, ассоциированной с предварительной точкой облака точек.

На стадии 320 контекст Ctxsign, используемый в контекстном энтропийном декодировании для декодирования знака sres невязки радиуса rres текущей точки, определяется на основании знака sres,prev.

На стадии 420 знак sres невязки радиуса rres декодируется из битового потока В с помощью контекстного энтропийного декодирования с использованием контекста Ctxsign.

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

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

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

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

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

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

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

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

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

Как показано на фиг. 12, было обнаружено, что изменение радиуса r является плавным, когда радиус r естественным образом увеличивается в ходе зондирования объекта датчиком. Однако, когда радиус r начинает уменьшаться в ходе зондирования, наблюдается пилообразная кривая. Это просто объясняется локальным увеличением (несколько захваченных точек) для тех же самых координат (Сφ, λ), объединенным с общим уменьшением из-за хода зондирования по захватываемому объекту.

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

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

На стадии 510, показанной на фиг. 14, вычисляется величина первого прыжка радиуса J1 между наибольшим радиусом точек, имеющих одинаковые координаты (Сφ,λ) и радиусом последней точки из ранее упорядоченных точек, ассоциированных с координатами (φ-1,λ), где координата φ-1=Сφ-φstep.

На стадии 520, показанной на фиг. 15, вычисляется величина второго прыжка радиуса J2 между наименьшим радиусом точек, имеющих одинаковые координаты (Сφ, λ) и радиусом последней точки из ранее упорядоченных точек, ассоциированных с координатами (φ-1,λ).

На стадии 530 имеющие те же самые координаты (Сφ,λ) точки упорядочиваются в порядке уменьшения радиуса, если второй прыжок радиуса J2 больше, чем первый прыжок радиуса J1, как показано на фиг. 14, или в противном случае в порядке увеличения радиуса (стадия 540), как показано на фиг. 15. За счет этой операции происходит минимизация величины прыжка между первой точкой из точек, имеющих одинаковые координаты (Сφ,λ), и последней точкой из ранее упорядоченных точек, ассоциированных с координатами (φ-1,λ), и при этом сохраняется локальная монотонность изменения радиуса для обеспечения преимущества при контекстом кодировании знака невязки радиуса.

Более того, применение адаптивного способа 500 упорядочивания радиусов к захваченным точкам, имеющим одинаковые координаты (Сφ,λ), как показано на фиг. 13, обеспечивает более плавное и более монотонное изменение радиуса, как показано на фиг. 16.

Когда способ 500 применяется к точкам облака точек, имеющим одинаковые координаты (Сφ, λ), давайте рассмотрим текущую точку Р в списке упорядоченных точек {…, Р-2, Р-1, Р; …}, имеющих одинаковую координату, причем такая точка Р является, по меньшей мере, третьей точкой в вышеупомянутом списке упорядоченных точек. Тогда знак sres невязки радиуса, ассоциированной с текущей точкой Р, равен знаку sres,prec невязки радиуса, ассоциированной с предыдущей точкой P-1, в предположении, что радиус предыдущей точки выбран в качестве предсказателя радиуса. Это прямое следствие того факта, что способ 500 обеспечивает, что последние три точки имеют либо уменьшающиеся, либо возрастающие величины радиусов, так что знаки разностей радиусов r(P)-r(P-1) и r(Р-1)-r(Р-2) одинаковые, то есть sres=sres,prec.

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

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

Согласно одному пояснительному варианту осуществления стадии 320, который можно объединить с предыдущим пояснительным вариантом осуществления стадии 320, контекст Ctxsign также получается из двоичных данных Dpenult, указывающих, является ли или нет текущая точка, по меньшей мере, третьей точкой Ppenult из списка упорядоченных точек.

Согласно одному пояснительному варианту осуществления стадии 320, адаптированному к схеме кодирования/декодирования по методу G-PCC, целое число μprev, сигнализируемое или извлекаемое из битового потока для предварительно закодированных точек из облака точек (фиг. 7), может быть сохранено в памяти, и тогда двоичные данные Dpenult оцениваются по сохраненному целому числу μprev, ассоциированному с предыдущей точкой, и/или двоичная информация Dlast оценивается по целому числу μ, сигнализируемому в битовом потоке.

В методе G-PCC можно захватить несколько точек с одинаковыми или различными азимутальными углами с помощью того же самого датчика. Если две точки последовательно захватываются с тем же самым азимутальным углом, целые числа μ равны 0 для кодирования двух последовательно захваченных точек. Когда текущая и предыдущая точки последовательно захватываются с различными азимутальными углами, используемое для кодирования текущей точки целое число μ равно 0, а используемое для кодирования предыдущей точки целое число μ равно 1. Следовательно, значения целых чисел, сигнализируемые в битовом потоке В, указывают информацию, аналогичную двоичным данным Dpenult и Dlast.

Например, Dpenult=0, если μprev=0, иначе Dpenult=1; и Dlast=0, если μ=0, иначе Dlast=1.

Согласно одному пояснительному варианту осуществления стадии 320, индекс Isel режима предсказания (фиг. 5), сигнализируемый или извлекаемый из битового потока для предварительно закодированных точек из облака точек (фиг. 7), может быть сохранен в памяти, и тогда контекст Ctxsign также получается из индекса Isel,prec режима предсказания, или режима предсказания, идентифицированного в списке кандидатов в режимы предсказания по индексу Isel режима предсказания.

Например, как объяснялось выше, кандидат в режимы предсказания указывает, зависит ли или нет предсказанный радиус от родительского узла. Следовательно, двоичные данные Dprevious можно определить по индексу Isel,prec режима предсказания для указания, зависит ли или нет предсказанный радиус от родительского узла текущей точки.

Согласно одному варианту осуществления стадии 320, контекст можно получить из таблицы контекста, в которую введен, по меньшей мере, один элемент из следующей информации: первые двоичные данные Dlast; вторые двоичные данные Dpenult; третьи двоичные данные Dprevious; знак sres,prev предварительно энтропийно закодированной ненулевой невязки радиуса rres,prev.

Например:

или

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

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

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

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

Система 600 может содержать в себе, по меньшей мере, один процессор 610, выполненный с возможностью выполнять команды, загруженные в него для реализации, например, различных аспектов, описанных в настоящем документе. Процессор 610 может содержать в себе встроенную память, интерфейс ввода-вывода и различные другие схемы, известные в этой области техники. Система 600 может содержать в себе, по меньшей мере, одну память 620 (к примеру, устройство энергозависимой памяти и/или энергонезависимой памяти). Система 600 может содержать в себе запоминающее устройство 640, которое может включать в себя энергозависимую память и/или энергонезависимую память, включая, помимо прочего, электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), постоянное запоминающее устройство (ПЗУ), программируемое постоянное запоминающее устройство (ППЗУ), оперативное запоминающее устройство (ОЗУ), динамическое оперативное запоминающее устройство (ДОЗУ), статическое оперативное запоминающее устройство (СОЗУ), флеш-память, накопитель на магнитном диске и/или накопитель на оптическом диске. Запоминающее устройство 640 может включать в себя внутреннее запоминающее устройство, подключенное запоминающее устройство и/или доступное по сети запоминающее устройство, в качестве не имеющих ограничительного характера примеров.

Система 600 может содержать в себе модуль 630 кодера/декодера, выполненный с возможностью, например, обрабатывать данные для создания закодированных/декодированных геометрических данных облака точек, и модуль 630 кодера/декодера может содержать в себе свой собственный процессор и память. Модуль 630 кодера/декодера может являться примером модуля, который может быть включен в устройство для выполнения функций кодирования и/или декодирования. Как известно, устройство может включать в себя один или оба модуля кодирования и декодирования. Дополнительно, модуль 630 кодера/декодера может быть реализован как отдельный элемент системы 600 или может быть встроен в процессор 610 в качестве комбинации аппаратных и программных средств, как известно специалистам в этой области техники.

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

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

Однако согласно другим вариантам осуществления, память, внешняя к устройству обработки (например, устройством обработки может быть либо процессор 610, либо модуль 630 кодера/декодера), может использоваться для одной или нескольких из этих функций. Внешняя память может быть памятью 620 и/или запоминающим устройством 640, например, динамической энергозависимой памятью и/или энергонезависимой флеш-памятью. Согласно некоторым вариантам осуществления, внешняя энергонезависимая флеш-память используется для хранения операционной системы для телевизора. Согласно, по меньшей мере, одному варианту осуществления, быстрая внешняя динамическая энергозависимая память, например, ОЗУ, используется в качестве рабочей памяти для операций кодирования и декодирования видео, например для части 2 MPEG-2 (также известен как Рекомендации сектора электросвязи МСЭ (ITU-T) Н.262 и ISO/IEC 13818-2, также известен как MPEG-2 Video), HEVC (высокоэффективное видеокодирование), VVC (универсальное кодирование видео), или часть 5 или часть 9 MPEG-I.

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

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

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

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

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

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

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

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

Согласно различным вариантам осуществления, данные могут поступать в систему 600 в потоковом режиме с использованием сети Wi-Fi, например, согласно стандарту IEEE 802.11. Сигнал Wi-Fi в таких вариантах осуществления может приниматься по каналу 1000 передачи данных и по интерфейсу 650 передачи данных, которые адаптированы для Wi-Fi связи. Канал 1000 передачи данных в таких вариантах осуществления может быть типично подсоединен к точке доступа или к маршрутизатору, который предоставляет доступ к внешним сетям, включая Интернет, для разрешения работы потоковых приложений и других протоколов связи по технологии ОТТ.

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

Согласно иным другим вариантам осуществления, потоковые данные могут предоставляться системе 600 с помощью РЧ соединения входного блока 690.

Потоковые данные могут использоваться для информации сигнализации, используемой в системе 600. Информация сигнализации может содержать битовый поток В, содержащий, по меньшей мере, флаг f0, информацию, представляющую знак sres невязки радиуса rres, закодированную с помощью контекстного энтропийного кодирования с использованием контекста Ctxsign и амплитуды невязки радиуса, количество точек облака точек, координаты или порядок o(P1) первой точки в двухмерной системе координат (Сφ, λ) и/или параметры настройки датчика, например, параметр μ или угол наклона θk, ассоциированный с датчиком на вращающейся головке 10 с датчиками.

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

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

Согласно различным вариантам осуществления, сигналы управления передаются между системой 600 и дисплеем 700, громкоговорителями 800 или другими периферийными устройствами 900 с помощью протоколов, например, AV.Link, СЕС (Consumer Electronics Control - управление бытовой электроникой) или других протоколов связи, которые позволяют осуществлять управление устройством с устройства с вмешательством пользователя или без него.

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

Согласно альтернативному варианту, выходные устройства можно подсоединить к системе 600 с помощью канала 1000 передачи данных через интерфейс 650 передачи данных. Дисплей 700 и громкоговорители 800 могут быть объединены в единый блок вместе с другими компонентами системы 600 в электронном устройстве, например, в телевизоре.

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

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

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

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

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

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

Дополнительно, способы могут быть реализованы с помощью команд, выполняемых процессором, и такие команды (и/или данные, созданные с помощью варианта реализации) могут храниться на машиночитаемом носителе данных. Машиночитаемый носитель данных может принять форму машиночитаемой программы, размещенной на одном или на нескольких машиночитаемых носителях, на которых хранится машиночитаемой код программы, который выполняется компьютером. Используемый в настоящем документе машиночитаемый носитель данных может рассматриваться в качестве долговременного носителя данных, который обладает присущей ему способностью хранить в себе информацию, а также присущей ему способностью извлекать из себя эту информацию. Машиночитаемый носитель данных может быть, помимо прочего, например, электронной, магнитной, оптической, электромагнитной, инфракрасной или полупроводниковой системой, аппаратурой, устройством или их любой подходящей комбинацией из вышеперечисленного. Следует понимать, что приводимые ниже более конкретные примеры машиночитаемых носителей данных, которые можно применить в представленных вариантах осуществления, является просто иллюстративным и не исчерпывающим списком, что очевидно специалисту обычной квалификации в этой области техники: дискета для переносного компьютера; жесткий магнитный диск; постоянное запоминающее устройство (ПЗУ), электрически программируемое постоянное запоминающее устройство (ЭППЗУ или флеш-память); переносное постоянное запоминающее устройство на компакт-дисках (CD-ROM); оптическое запоминающее устройство; магнитное запоминающее устройство или любая подходящая комбинация из вышеперечисленного.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Так же, как используется в настоящем документе, слово «сигнал» предназначено, помимо других вещей, для указания чего-то в соответствующем декодере. Например, согласно некоторым вариантам осуществления, кодер сигнализирует флаг f0, информацию, представляющую знак sres невязки радиуса rres, закодированную с помощью контекстного энтропийного кодирования с использованием контекста Ctxsign и амплитуды невязки радиуса, количество точек облака точек, координаты или порядок o(P1) первой точки в двухмерной системе координат (Сφ, λ) или параметры настройки датчика, например, параметр μ или угол наклона θk, ассоциированный с датчиком k. Таким образом, согласно варианту осуществления тот же самый параметр может использоваться как на стороне кодера, так и на стороне декодера. Следовательно, например, кодер может передавать (явным образом сигнализировать) конкретный параметр декодеру, так что декодер может использовать тот же самый конкретный параметр. И наоборот, если у декодера уже есть конкретный параметр, а также другие, то сигнализацию можно использовать без передачи (подразумеваемая сигнализация), чтобы просто позволить декодеру узнать и выбрать конкретный параметр. За счет исключения передачи любых фактических функций в различных вариантах осуществления достигается экономия битов. Следует понимать, что сигнализацию можно реализовать разными способами. Например, один или несколько элементов синтаксиса, флагов и так далее используются для передачи информации соответствующему декодеру согласно различным вариантам осуществления. Хотя в предыдущем примере используется глагольная форма от слова «сигнал», слово «сигнал» может также использоваться в настоящем документе в качестве имени существительного.

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

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

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

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

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

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

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

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

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

3. Способ по п. 1 или 2, отличающийся тем, что энтропийное кодирование знака (sres) невязки радиуса (rres) текущей точки является контекстным энтропийным кодированием, использующим контекст (Ctxsign), основанный на знаке (sres,prev) предварительно энтропийно закодированной ненулевой невязки радиуса (rres,prev).

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

5. Способ по п. 3, отличающийся тем, что точки облака точек упорядочены согласно определенному порядку, и предыдущая точка является последней предварительно упорядоченной точкой, ассоциированной с энтропийно закодированной ненулевой невязкой радиуса (rres,prev).

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

7. Способ по п. 5, отличающийся тем, что контекст (Ctxsign) также получается из вторых двоичных данных (Dpenult), указывающих, является ли или нет текущая точка, по меньшей мере, третьей точкой из упорядоченных точек.

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

9. Способ по п. 5, отличающийся тем, что контекст (Ctxsign) получается из таблицы (CtxTab) контекста, в которую введен, по меньшей мере, один элемент из следующей информации:

первые двоичные данные (Dlast);

вторые двоичные данные (Dpenult);

третьи двоичные данные (Dprevious);

знак (sres,prev) предварительно энтропийно закодированной ненулевой невязки радиуса (rres,prev).

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

11. Способ по п. 10, отличающийся тем, что энтропийное декодирование знака (sres) невязки радиуса (rres) текущей точки является контекстным энтропийным декодированием, использующим контекст (Ctxsign), основанный на знаке (sres,prev) предварительно энтропийно декодированной ненулевой невязки радиуса (rres,prev).

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

13. Способ по п. 11, отличающийся тем, что точки облака точек упорядочены согласно определенному порядку, и предыдущая точка является последней предварительно упорядоченной точкой, ассоциированной с энтропийно декодированной ненулевой невязкой радиуса (rres,prev).

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

15. Способ по п. 13 или 14, отличающийся тем, что контекст (Ctxsign) также получается из вторых двоичных данных (Dpenult), указывающих, является ли или нет текущая точка, по меньшей мере, третьей точкой из упорядоченных точек.

16. Способ по п. 13 или 14, отличающийся тем, что точки облака точек ассоциированы с узлами дерева, причем контекст (Ctxsign) также получается из третьих двоичных данных (Dprevious), указывающих, зависит ли или нет от родительского узла текущей точки предсказанный радиус, используемый для получения невязки радиуса, ассоциированной с текущей точкой.

17. Способ по п. 13 или 14, отличающийся тем, что контекст (Ctxsign) получается из таблицы (ctxTab) контекста, в которую введен, по меньшей мере, один элемент из следующей информации:

первые двоичные данные (Dlast);

вторые двоичные данные (Dpenult);

третьи двоичные данные (Dprevious);

знак (sres,prev) предварительно энтропийно закодированной ненулевой невязки радиуса (rres,prev).

18. Устройство, содержащее один или несколько процессоров, выполненных с возможностью выполнить способ по любому из пп. 1-9.

19. Устройство, содержащее один или несколько процессоров, выполненных с возможностью выполнить способ по любому из пп. 10-17.

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

US 20200175725 A1, 04.06.2020
WO 2020198180 A1, 01.10.2020
US 20180053324 A1, 22.02.2018
US 20190116372 A1, 18.04.2019
CN 111699683 A, 22.09.2020
CN 111373758 A, 03.07.2020
СПОСОБ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ДАННЫХ ТРЕХМЕРНЫХ ОБЪЕКТОВ И УСТРОЙСТВО ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ 2003
  • Парк Ин-Киу
  • Ли Син-Дзун
  • Сонг Ин-Воок
  • Ким Чанг-Су
  • Ли Санг-Ук
RU2267161C2

RU 2 832 213 C2

Авторы

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

Такэ, Джонатан

Даты

2024-12-23Публикация

2021-10-13Подача