ОТСЫЛКА К РОДСТВЕННОЙ ЗАЯВКЕ
В настоящей заявке испрашивается приоритет Европейской патентной заявки № EP21305456.2, поданной 8 апреля 2021г., содержимое которой включено в настоящее описание посредством отсылки.
ОБЛАСТЬ ТЕХНИКИ
Настоящая заявка относится в целом к сжатию облака точек и, в частности, к способам и устройству кодирования/декодирования геометрических данных облака точек, собранных вращающейся измерительной головкой.
УРОВЕНЬ ТЕХНИКИ
Данный раздел предназначен для того, чтобы ознакомить читателя с различными аспектами существующего уровня техники, которые могут относиться к по меньшей мере одному из иллюстративных вариантов осуществления изобретения по настоящей заявке, раскрытых и/или заявленных ниже. Предполагается, что данное описание поможет читателю получить базовую информацию и более ясное представление о различных аспектах изобретения по настоящей заявке.
Облака точек с недавних пор получили широкое распространение в качестве формата представления трехмерных данных благодаря своей универсальности, позволяющей представлять любые типы физических объектов или сцен. Облака точек могут использоваться для различных целей, в частности - для трехмерного сканирования объектов культурного наследия / зданий, когда такие объекты, как статуи, или здания сканируют для публикации, чтобы с их пространственной конфигурацией можно было ознакомиться без отправки их изображений или посещения их. Это также является одним из путей сохранения информации о них на случай их разрушения, например - разрушения храма землетрясением. Такие облака точек обычно являются статичными, цветными и очень большими.
Другим случаем применения является применение в топографии и картографии, где применение трехмерных представлений позволяет создавать карты, не ограниченные плоскостью и могущие включать в себя рельеф. На сегодняшний день, карты сериса «Google Maps» являются хорошим примером трехмерных карт, однако в их основе лежат сетки, а не облака точек. При этом облака точек как формат данных могут быть пригодны для трехмерных карт, при этом такие облака точек обычно являются статичными, цветными и очень большими.
Технологии виртуальной реальности (ВР), дополненной реальности (ДР) и «иммерсивных миров» с недавнего времени стали востребованным направлением, которое, как многие считают, придет на смену плоским двумерным видеоизображениям. В их основе лежит идея создания у зрителя эффекта погружения в окружающую среду, в отличие от стандартного телевидения, с которым зритель может видеть виртуальный мир только перед собой. Существует несколько градаций погруженности в зависимости от степени свободы зрителя в данной среде. Облако точек имеет хороший потенциал в качестве формата для раздачи миров ВР/ДР.
Автомобильная промышленность, в частности - самоуправляемые автомобили, создание которых прогнозируется, также является возможной областью, где облака точек могут найти широкое применение. Самоуправляемые автомобили должны быть способны «зондировать» окружающую их среду для принятия правильных водительских решений в зависимости от обнаруженного присутствия и характера объектов в непосредственной близости и от конфигурации дороги.
Облако точек - это набор точек в трехмерном пространстве, необязательно с присвоенными каждой точке дополнительными значениями. Дополнительные значения обычно называют «атрибуты». Атрибуты могут представлять собой, например, трехкомпонентные цвета, свойства материала, такие, как отражательная способность, и/или двухкомпонентные нормальные векторы к поверхности, к которой относится точка.
Таким образом, облако точек - это комбинация геометрических параметров (местоположения точек в трехмерном пространстве, обычно выраженное трехмерными декартовыми координатами x, y и z) и атрибутов.
Облака точек можно снимать с помощью устройств различных типов, в частности - массива съемочных камер, датчиков глубины, лазеров (оптических датчиков обнаружения и определения дальности, также именуемых «лидары»), радаров, или можно генерировать с помощью ЭВМ (например, на монтажно-тонировочном этапе производства фильмов). В зависимости от случая применения, облака точек могут содержать от сотен до миллиардов точек при применении в картографии. Для необработанных представлений облаков точек нужно очень большое число бит на точку, а именно - по меньшей мере дюжина бит на декартову координату x, y или z и, дополнительно, больше бит на атрибут(-ы), например, трижды по 10 бит для цветов.
Во многих случаях применения важно наличие возможности либо раздачи облаков точек конечному пользователю, либо их хранения на сервере с потреблением только разумно необходимого количества битов в секунду или места в памяти и одновременно с поддержанием приемлемого (или, предпочтительно, очень высокого) качества взаимодействия. Эффективное сжатие облаков точек играет ключевую роль в обеспечении осуществимости цепочки реализации многих «иммерсивных миров».
При сжатии (как при сжатии видеосигнала) для доставки конечному пользователю и визуализации им с помощью, например, очков ДР/ВР или иного устройства с поддержкой трехмерного формата, могут возникать потери. Для других случаев применения, в таких, как медицина или автономное вождение, необходимо сжатие без потерь во избежание видоизменения результатов решения, полученных на основе последующего анализа сжатого и переданного облака точек.
До недавних пор, сжатие облака точек (PCC, англ. Point Cloud Compression) не рассматривалось для массовой аудитора, при этом отсутствовал стандартизированный кодек для облака точек. В 2017 году Рабочая группа по стандартизации ISO/JCT1/SC29/WG11, также известная как «Экспертная группа по движущимся изображениям» или MPEG (англ. Moving Pictures Expert Group), начала работу по вопросам сжатия облака точек. Ее результатом стали два стандарта, а именно:
MPEG-I Часть 5 (ISO/IEC 23090-5) или «Сжатие облака точек на основе видео» (V-PCC, англ. Video-based Point Cloud Compression),
MPEG-I Часть 9 (ISO/IEC 23090-9) или «Сжатие облака точек на основе геометрии» (G-PCC, англ. Geometry-based Point Cloud Compression)
Способ кодирования по стандарту V-PCC предусматривает сжатие облака точек путем выполнения множества проекций трехмерного объекта с получением двумерных участков, которые упаковывают в изображение (или в видеоизображение в случае работы с динамическими облаками точек). Полученные изображения или видеоизображения сжимают с помощью известных кодеков сигналов изображений / видеосигналов, что позволяет использовать преимущества решений, уже применяемых для изображений или видеоизображений. Из-за своего характера, способ по стандарту V-PCC эффективен только для плотных и непрерывных облаков точек, так как кодеки сигналов изображений / видеосигналов не могут сжимать негладкие участки, которые были бы получены в результате проекции, например, собранных лидаром разреженных геометрических данных.
Способ кодирования по стандарту G-PCC предусматривает две схемы для сжатия собранных разреженных геометрических данных.
В основе первой схемы лежит дерево занятости, представляющее собой, в частности, дерево любого типа из следующих - октадерево, квадродерево или бинарное дерево, отражающее геометрию облака точек. Занятые узлы расщепляют до получения определенного размера, при этом занятые листовые узлы указывают пространственные местоположения точек, обычно - в центре данных узлов. Информация о занятости содержится во флагах занятости, сигнализирующих статус занятости каждого из дочерних узлов. Применение методик предсказания по соседям позволяет обеспечить высокий уровень сжатия флагов занятости для плотных облаков точек. Данную схему также применяют для разреженных облаков точек путем прямого кодирования положения точки в пределах узла не-минимального размера и прекращения построения дерева, когда в узле остаются только изолированные точки; данная методика известна как «Режим прямого кодирования» (DCM, англ. Direct Coding Mode).
В основе второй схемы лежит прогнозное дерево, в котором каждый узел представляет пространственное местоположение одной точки, при этом взаимосвязь «родительский узел - дочерний узел» представляет пространственное предсказание в направлении от родительского узла к дочернему узлу. Данный способ применим только к разреженным облакам точек и обеспечивает преимущество, состоящее в уменьшении задержки и упрощении декодирования дерева занятости. Однако он только незначительно повышает эффективность сжатия, при этом кодирование является сложным по сравнению с первым способом на основе занятости, так как кодер должен активно искать наилучший предиктор (из длинного списка потенциальных предикторов) при построении прогнозного дерева.
В обеих схемах кодирование или декодирование атрибутов выполняют после полного кодирования или декодирования геометрии, вследствие чего кодирование является по существу двухпроходным.
Важным случаем применения является передача разреженных геометрических данных, собранных вращающейся измерительной головкой, например, вращающейся головкой лидара, установленной на движущемся транспортном средстве. Для этого обычно нужен простой бортовой кодер с малой задержкой. Простота нужна из-за того, что кодер с большой долей вероятности будет установлен в вычислительных блоках, параллельно выполняющих другую обработку, в частности - для (полу-) автономного вождения, что ограничивает вычислительную мощность, которую может использовать кодер облака точек. Малая задержка также нужна для обеспечения быстрой передачи от автомобиля в облачную среду для обеспечения обзора в реальном времени местного дорожного движения на основе сбора данных от множества транспортных средств и принятия соответствующего наилучшего решения на основе данной информации о дорожном движении. Задержка передачи может быть достаточно малой за счет применения связи по стандарту 5G, однако кодер как таковой не должен создавать слишком большую задержку из-за выполнения кодирования. Эффективность сжатия также крайне важна, поскольку ожидается, что поток данных от миллионов автомобилей будет крайне интенсивным.
Частные априорные предположения, относящиеся к разреженным геометрическим данным, собранным вращающейся измерительной головкой, уже применялись для создания очень эффективных способов кодирования/декодирования.
Например, стандарт G-PCC предусматривает применение угла возвышения (относительно горизонтальной земной поверхности) при сборе данных от вращающейся измерительной головки, как показано на Фиг. 1 и 2. Вращающаяся измерительная головка 10 содержит набор датчиков 11 (например, лазерных), в данном случае - пять датчиков. Вращающаяся измерительная головка 10 может вращаться вокруг вертикальной оси z для сбора геометрических данных о физическом объекте, т.е. пространственных местоположениях точек облака точек. Геометрические данные, собранные вращающейся измерительной головкой, далее представляют в сферических координатах (), где
- расстояние от точки P до центра вращающейся измерительной головки,
- азимутальный угол вращения измерительной головки относительно плоскости отсчета, а
- угол возвышения для датчика k вращающейся измерительной головки относительно горизонтальной плоскости отсчета.
Наблюдалось равномерное распределение вдоль азимутального угла геометрических данных, собранных вращающейся измерительной головкой, как показано на Фиг. 3. За счет данной равномерности, способ по стандарту G-PCC позволяет получить квазиодномерное представление облака точек, в котором, без учета шума, только радиус r3D относится к непрерывному диапазону значений, а углы и
принимают только несколько дискретных значений
, где I - число азимутальных углов, при которых осуществляют съемку точек, и
, где K - число датчиков вращающейся измерительной головки 10. В способе по стандарту G-PCC в основном представлены разреженные геометрические данные, собранные вращающейся измерительной головкой, на двумерной дискретной плоскости с углами (
), как показано на Фиг. 3, со значением радиуса
для каждой точки.
Способ по стандарту G-PCC предусматривает использование данного свойства квазиодномерности и для дерева занятости, и для прогнозного дерева путем предсказания, в пространстве сферических координат, местоположения текущей точки на основе уже кодированной точки, исходя из указанного дискретного характера углов.
А именно, дерево занятости предусматривает активное применение режима DCM и энтропийное кодирование непосредственных местоположений точек в пределах узла с помощью контекстно-адаптивного энтропийного кодера. Далее получают контексты на основе локального преобразования местоположений точек в угловые координаты () и местоположения данных угловых координат относительно ранее полученных дискретных угловых координат (
) кодированных точек. Прогнозное дерево напрямую кодирует первый вариант местоположения точки в угловых координатах (r2D,
), где r2D - проекция радиуса на горизонтальную плоскость xy, как показано на Фиг. 4, используя квазиодномерный характер (r2D,
) данного пространства координат. Далее кодируют угловые координаты (r2D,
). Их также преобразуют в трехмерные декартовы координаты (x, y, z) и кодируют разность xyz для компенсации погрешностей кодирования координат, аппроксимации углов возвышения и азимутальных углов и потенциального шума.
Для кодирования азимутального угла с учетом угла съемки для датчика, снявшего точку Pn облака точек, можно воспользоваться схемой предсказания на Фиг. 5. Предсказанный угол
для точки Pn облака точек вычисляют на основе угла
уже кодированной точки Pal путем его сдвига на величину, кратную элементарному азимутальному сдвигу
:
(1)
где m - целочисленное значение, выбранное так, чтобы был как можно ближе к исходному азимутальному углу
точки
.
Разность азимутального угла (показатель n указывает на то, что разность азимутального угла является таковой относительно точки Pn) далее вычисляют по формуле:
(2)
И целочисленное значение m, и разность азимутального угла кодируют в битовом потоке.
На стороне декодирования целочисленное значение m и разность азимутального угла декодируют из битового потока и получают декодированный азимутальный угол
по формуле:
(3)
Прочие сферические координаты (r2D,) и разность xyz также декодируют. Далее получают трехмерные декартовы координаты (x,y,z) точек облака точек на основе декодированной разности xyz и трехмерных декартовых координат, полученных путем преобразования декодированных сферических координат (r2D,
).
В Европейской патентной заявке № EP20306672.5 раскрыт еще один способ кодирования/декодирования, предусматривающий применение частных априорных предположений, относящихся к разреженным геометрическим данным, собранным вращающейся измерительной головкой.
Снятые пространственные местоположения точек облака точек представляют в двумерной системе координат (), как показано на Фиг. 6, вместе со значениями радиусов
или
. Данное представление именуется «одноцепочечное кодирование», так как точки представляют в виде единственной цепочки точек, при этом у каждой точки есть только одна последующая точка. Координата
- это азимутальный угол вращения измерительной головки, дискретные значения которого обозначены как
. Координата
- это индекс датчика, дискретные значения которого обозначены как
. Радиус
или
относится к непрерывному диапазону значений.
Из-за однородного вращения (поворачивания) измерительной головки и непрерывной съемки с фиксированным временным интервалом, азимутальное расстояние между двумя точками, измеряемыми одним и тем же датчиком, представляет собой величину, кратную элементарному азимутальному сдвигу , как показано на Фиг. 6. Далее, например, в первое время t1 съемки, происходит измерение пяти точек P1(t1),…, Pk(t1),… P5(t1) пятью датчиками вращающейся измерительной головки 10 с Фиг. 1 под азимутальным углом
, а во второе время t2 съемки происходит измерение пяти точек P1(t2),…, Pk(t2),… P5(t2) указанными датчиками вращающейся измерительной головки 10 под азимутальным углом
+
и так далее. Следовательно, дискретное значение
можно рассматривать как квантованную величину азимутальных углов
точек P1(t1),…, Pk(t1),… P5(t1); при этом квантование осуществляют с шагом квантования
(также именуемым «элементарный азимутальный сдвиг»). Аналогичным образом, дискретное значение
можно рассматривать как квантованную величину азимутальных углов
точек P1(t2),…, Pk(t2),… P5(t2).
На стороне кодирования, для каждой точки Pn облака точек, получают индекс датчика (из набора индексов
датчиков), относящийся к датчику, снявшему данную точку Pn, азимутальный угол
(из набора дискретных углов
), представляющий угол съемки для указанного датчика, и значение rn радиуса сферических координат точки Pn путем преобразования трехмерных декартовых координат, описывающих пространственное местоположение снятой точки Pn. Данные трехмерные декартовы координаты могут быть выданы измерительной головкой. Для простоты,
и индекс
далее будут обозначаться соответственно
и
. Следовательно,
- это не угол, а индекс i
), указывающий на угол
. Как бы то ни было, учитывая наличие однозначной связи между индексом
и канонически ассоциируемым азимутальным углом
, величина
все также именуется «азимутальный угол».
Далее точки облака точек упорядочивают по азимутальным углам и индексам
датчиков в лексикографическом порядке сперва по азимутальному углу, а затем по индексу датчика. Вновь обратившись к Фиг. 6, можно увидеть упорядоченные снятые точки: P1(t1),…, Pk(t1),…, P5(t1), P1(t2),…, Pk(t2),…, P5(t2),…, P1(tn),…, Pk(tn),… P5(tn).
Порядковый индекс точки Pn получают по формуле:
*K+
В качестве альтернативы, точки упорядочивают в лексикографическом порядке сперва по индексу датчика, а затем по азимутальному углу.
Порядковый индекс точки Pn получают по формуле:
+
Далее получают разности порядковых индексов, каждая из которых представляет собой разность порядковых индексов двух следующих друг за другом точек Pn-1 и Pn (для n= от 2 до N), по формуле:
=
-
Порядковый индекс первой точки
может быть напрямую кодирован в битовый поток. Это равнозначно произвольному назначению нуля в качестве порядкового индекса виртуальной нулевой точки, т.е.
, и кодированию
.
На основе порядкового индекса первой точки и разностей
порядковых индексов, можно рекурсивно восстановить порядковый индекс
любой точки
по формуле
=
+
с последующим восстановлением индексов датчиков и азимутального угла
по формулам
по модулю K (4)
=
/ K (5),
где деление «/ K» - это целочисленное (т.п. евклидово) деление. Таким образом, и
являются альтернативным вариантом представления
и
.
Порядковые индексы , относящиеся к упорядоченным точкам, кодируют в битовом потоке путем кодирования порядкового индекса
и (N-1) разностей
порядковых индексов, где N - число упорядоченных точек. Каждая из разностей
порядковых индексов представляет собой разность порядковых индексов, относящихся к двух следующим друг за другом упорядоченным точкам. На Фиг. 7 представлено пять упорядоченных точек (черные кружки): две точки Pn и Pn+1 были сняты во время t1 под азимутальным углом
(из
), а три точки были сняты во время t2 под азимутальным углом
. Если координаты первой точки Pn в двумерной системе координат (
) известны заранее, первую разность
порядковых индексов получают в виде разности между порядковым индексом
, относящимся к точке Pn+1, и порядковым индексом
, относящимся к точке Pn. Вторую разность
порядковых индексов получают в виде разности между порядковым индексом
, относящимся к другой упорядоченной точке Pn+2, и порядковым индексом
, относящимся к Pn+1, и так далее.
Далее кодируют значения rn радиусов (по существу представляющих собой или
для точки
) сферических координат, относящихся к упорядоченным точкам облака точек в битовом потоке.
Разноститрехмерных декартовых координат упорядоченных точек Pn кодируют в битовом потоке. Их определяют на основе их трехмерных декартовых координат, декодированных азимутальных углов
, полученных на основе азимутальных углов
, декодированных значений
радиуса, полученных на основе значений rn радиуса, и индексов
датчиков.
Далее также кодируют разности азимутальных углов, относящихся к упорядоченным точкам, в битовом потоке:
=
=
-
(6)
В одном из вариантов азимутальные углы квантуют по формуле:
округленно(
)
В данном случае, набор дискретных углов (0≤i<I) по существую определяется формулой
=i*
, и получают
. Декодированные азимутальные углы
получают по формуле:
+
=
+
Данный вариант обеспечивает преимущества за счет того, что, в некоторых случаях на практике, снимаются не все точки в каждое время съемки из-за возможного захвата шума, или из-за того, что датчики могут не быть идеально ориентированы, или из-за того, что по меньшей мере один лазерный пучок измерительной головки лидара может не быть отражен. Предполагается, что кодирование разностей азимутальных углов включает в себя кодирование такого шума или нарушения ориентации. Снятые точки могут быть распределены, как показано на Фиг. 8. В результате квантования азимутальных углов
получают дискретное представление точек в двумерной системе координат (
), как показано на Фиг. 9, что создает очевидный путь для упорядочивания точек облака точек.
Разности азимутальных углов кодируют в битовый поток B, предпочтительно путем квантования и/или энтропийного кодирования.
Это снижает динамику азимутальных углов, подлежащих кодированию в битовый поток, так как кодируют только разность, а не полное значение. Достигается высокая эффективность сжатия.
Для декодирования точек облака точек из битового потока нужна информация о числе N точек облака точек, порядковом индексе первой точки в двумерной системе координат (
) и параметрах настройки датчика, в частности - элементарном азимутальном сдвиге
или угле
возвышения, относящихся к каждому датчику k. Данная информация может быть декодирована из битового потока B, или получена иными путями, или быть заранее известна декодеру.
N точек облака точек могут быть декодированы рекурсивно.
Сначала декодируют по меньшей мере одну разность порядковых индексов из битового потока. Каждую разность
порядковых индексов декодируют для текущей точки Pn.
Далее получают порядковый индекс для текущей точки Pn по формуле:
=
+
Разность порядковых индексов представляет собой разность между порядковым индексом, относящимся к текущей точке Pn, и другим порядковый индекс
, относящимся к предыдущей декодированной точке Pn-1.
Далее получают индекс датчика, относящийся к датчику, снявшему текущую точку Pn, и азимутальный угол
, представляющий угол съемки для указанного датчика, на основе порядкового индекса
из уравнений (4) и (5).
Далее получают декодированный азимутальный угол , описываемый формулой:
(7)
где - разность азимутального угла, декодированная из битового потока.
Далее декодируют значение rn радиуса сферических координат текущих точек Pn и разность трехмерных декартовых координат текущей точки Pn из битового потока.
В завершение, декодируют трехмерные декартовы координаты (x,y,z) текущей точки Pn на основе декодированной разности трехмерных декартовых координат текущей точки Pn, декодированного значения rn радиуса, декодированного азимутального угла и индекса
датчика.
Из вышесказанного следует, что известные решения предусматривают кодирование разностей азимутальных углов (уравнение 2 и 6) в битовом потоке.
Определение данных разностей азимутальных углов приводит к возникновению следующего неравенства, обозначенного через свойство ограничения:
(8)
Из данного неравенства видно, что разности азимутальных углов ограничены значением, зависящим от характеристик датчика, а именно - от элементарного азимутального сдвига Δ между двумя измерениями вращающейся измерительной головкой.
Поставленная задача состоит в том, чтобы воспользоваться свойством ограничения (8) в рамках съемки геометрии облака точек с помощью вращающейся измерительной головки для повышения эффективности кодирования геометрических данных снятого таким образом облака точек.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В нижеследующем разделе представлено упрощенное описание сущности по меньшей мере одного иллюстративного варианта осуществления для создания базового представления о некоторых аспектах изобретения по настоящей заявке. Данный раздел «Сущность изобретения» не содержит широкий обзор иллюстративного варианта осуществления. Он не предназначен для определения ключевых или критических элементов какого-либо варианта осуществления. В нижеследующем раскрытии сущности изобретения в упрощенном виде представлены только некоторые аспекты по меньшей мере одного из иллюстративных вариантов осуществления в качестве предисловия к более подробному описанию в других частях настоящего документа.
Согласно первому аспекту изобретения по настоящей заявке, предложен способ кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект, включающий в себя этап, на котором: кодируют в битовый поток данные азимутального угла, характеризующие азимутальный угол с учетом угла съемки для датчика, снявшего точку облака точек. В основе указанного кодирования лежит граничное значение, зависящее от характеристик датчика, при этом абсолютное значение указанных данных азимутального угла ограничено указанным граничным значением.
В одном иллюстративном варианте осуществления данные азимутального угла получают путем квантования разности первого порядка азимутального угла между данным азимутальным углом и предсказанным углом для указанного азимутального угла.
В одном иллюстративном варианте осуществления данные азимутального угла получают путем прибавления значения поправки, зависящего от граничного значения, к промежуточным данным азимутального угла, зависящим от разности второго порядка азимутального угла между разностью первого порядка азимутального угла и предсказанным значением указанной разности первого порядка азимутального угла.
В одном иллюстративном варианте осуществления значение поправки является произведением целочисленного значения на 2B+1, где B - это граничное значение, при этом указанное целочисленное значение обеспечивает то, что абсолютное значение данных азимутального угла будет ограничено граничным значением B.
В одном иллюстративном варианте осуществления граничное значение зависит от элементарного сдвига азимутального угла и параметра квантования, используемого для квантования разности первого порядка азимутального угла.
В одном иллюстративном варианте осуществления на этапе, на котором кодируют данные азимутального угла, дополнительно осуществляют бинаризацию данных азимутального угла с получением последовательности двоичных данных; кодируют только те двоичные данные, для которых ни одно из двух возможных значений не противоречит условию о том, что абсолютное значение данных ограничено граничным значением B.
Согласно второму аспекту изобретения по настоящей заявке, предложен способ декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, включающий в себя этап, на котором декодируют из битового потока данные азимутального угла, характеризующие азимутальный угол с учетом угла съемки для датчика, снявшего точку облака точек, при этом в основе указанного декодирования лежит граничное значение, зависящее от характеристик датчика, при этом абсолютное значение указанных данных азимутального угла ограничено указанным граничным значением.
В одном иллюстративном варианте осуществления на этапе, на котором декодируют данные азимутального угла, получают последовательность двоичных данных, представляющих данные азимутального угла, для каждых двоичных данных путем: либо декодирования двоичных данных из битового потока, если ни одно из двух возможных значений не противоречит условию о том, что абсолютное значение данных азимутального угла ограничено граничным значением; либо логического выведения значения двоичных данных из единственного значения, не противоречащего указанному условию.
В одном иллюстративном варианте осуществления данные азимутального угла представляют собой квантованную разность азимутального угла между данным азимутальным углом и предсказанным углом для указанного азимутального угла.
В одном иллюстративном варианте осуществления способ дополнительно включает в себя этапы, на которых: получают промежуточную разность азимутального угла на основе данных азимутального угла и предсказанного значения первой разности азимутального угла между данным азимутальным углом и предсказанным углом для указанного азимутального угла; получают разность первого порядка азимутального угла путем прибавления значения поправки, зависящего от граничного значения, к промежуточной разности азимутального угла; и выполняют обратное квантование указанной разности первого порядка азимутального угла.
В одном иллюстративном варианте осуществления значение поправки является произведением целочисленного значения на 2B+1, где B - это граничное значение, при этом указанное целочисленное значение обеспечивает то, что абсолютное значение промежуточного разности азимутального угла будет ограничено граничным значением B.
В одном иллюстративном варианте осуществления граничное значение зависит от элементарного сдвига азимутального угла и параметра квантования, используемого для обратного квантования указанной разности.
Согласно третьему аспекту изобретения по настоящей заявке, предложен битовый поток кодированных данных облака точек, представляющих физический объект, содержащий данные азимутального угла, характеризующие азимутальный угол с учетом угла съемки для датчика, снявшего точку облака точек, и данные, представляющие граничное значение (B), зависящее от характеристик датчика, и служащие для декодирования указанных данных азимутального угла так, чтобы абсолютное значение указанных данных азимутального угла было ограничено указанным граничным значением.
Согласно четвертому аспекту изобретения по настоящей заявке, предложено устройство кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект. Устройство содержит по меньшей мере один процессор, выполненный с возможностью выполнения способа по первому аспекту изобретения по настоящей заявке.
Согласно пятому аспекту изобретения по настоящей заявке, предложено устройство декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект. Устройство содержит по меньшей мере один процессор, выполненный с возможностью выполнения способа по второму аспекту изобретения по настоящей заявке.
Согласно шестому аспекту изобретения по настоящей заявке, предложен программный продукт для ЭВМ, включающий в себя инструкции, которые при исполнении программы указанным по меньшей мере одним процессором, обеспечивают выполнение данным по меньшей мере одним процессором способа по первому аспекту изобретения по настоящей заявке.
Согласно седьмому аспекту изобретения по настоящей заявке, предложен долговременный носитель данных, содержащий инструкции программного кода для выполнения способа по первому аспекту изобретения по настоящей заявке.
Согласно восьмому аспекту изобретения по настоящей заявке, предложен программный продукт для ЭВМ, включающий в себя инструкции, которые при исполнении программы указанным по меньшей мере одним процессором, обеспечивают выполнение данным по меньшей мере одним процессором способа по второму аспекту изобретения по настоящей заявке.
Согласно девятому аспекту изобретения по настоящей заявке, предложен долговременный носитель данных, содержащий инструкции программного кода для выполнения способа по второму аспекту изобретения по настоящей заявке.
Особенность по меньшей мере одного из иллюстративных вариантов осуществления, а также прочие цели, преимущества, признаки и варианты применения указанного по меньшей мере одного из иллюстративных вариантов осуществления, станут понятны из нижеследующего описания примеров, рассматриваемых совместно с прилагаемыми чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Далее будут рассмотрены, в качестве примера, прилагаемые чертежи, изображающие иллюстративные варианты осуществления изобретения по настоящей заявке, на которых:
Фиг. 1 иллюстрирует вид сбоку известной измерительной головки и некоторые ее параметры;
Фиг. 2 иллюстрирует вид сверху известной измерительной головки и некоторые ее параметры;
Фиг. 3 иллюстрирует равномерное распределение данных, собранных известной вращающейся измерительной головкой;
Фиг. 4 иллюстрирует представление точки в трехмерном пространстве согласно известным решениям;
Фиг. 5 иллюстрирует кодирование азимутальных углов с предсказанием согласно известным решениям;
Фиг. 6 иллюстрирует пример снятой точки, представленной в двумерном пространстве, по одному иллюстративному варианту осуществления изобретения по настоящей заявке;
Фиг. 7 иллюстрирует пример кодированных упорядоченных точек по одному иллюстративному варианту осуществления изобретения по настоящей заявке;
Фиг. 8 иллюстрирует пример снятых точек по одному иллюстративному варианту осуществления изобретения по настоящей заявке;
Фиг. 9 иллюстрирует пример упорядоченных и квантованных снятых точек по одному иллюстративному варианту осуществления изобретения по настоящей заявке;
Фиг. 10 - блок-схема этапов способа 100 кодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, в по меньшей мере одном иллюстративном варианте осуществления;
Фиг. 11 иллюстрирует преимущества способа 100 в по меньшей мере одном иллюстративном варианте осуществления;
Фиг. 12 иллюстрирует преимущества способа 100 в по меньшей мере одном иллюстративном варианте осуществления;
Фиг. 13 - блок-схема этапов способа 200 декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, в по меньшей мере одном иллюстративном варианте осуществления; и
Фиг. 14 - принципиальная блок-схема примера системы, в которой реализованы различные аспекты и иллюстративные варианты осуществления.
На разных фигурах могут быть использованы аналогичные номера позиций для обозначения аналогичных компонентов.
ОПИСАНИЕ ИЛЛЮСТРАТИВНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
По меньшей мере один из иллюстративных вариантов осуществления более подробно описан ниже с отсылкой к прилагаемым фигурам, на которых проиллюстрированы примеры по меньшей мере одного из иллюстративных вариантов осуществления. При этом иллюстративный вариант осуществления может быть реализован во многих альтернативных формах и не должен рассматриваться как ограниченный приведенными в настоящем документе примерами. Поэтому не следует рассматривать иллюстративные варианты осуществления как ограниченные раскрытыми частными формами. Напротив, в объем данного раскрытия должны быть включены все изменения, эквивалентные замены и альтернативные решения без отступления от существа и объема изобретения по настоящей заявке.
Если на фигуре представлена схема последовательности, следует понимать, что она также представляет блок-схему соответствующего устройства. Аналогичным образом, если фигура представлена в виде блок-схемы, следует понимать, что она также представляет схему последовательности соответствующего способа/процесса.
По меньшей мере один из аспектов относится в целом к кодированию и декодированию облака точек, а по меньшей мере один другой аспект относится в целом к передаче сгенерированного или кодированного битового потока.
Кроме того, аспекты настоящего изобретения не ограничены стандартами MPEG, например, Частью 5 или Частью 9 стандарта MPEG-I, относящимися к сжатию облака точек, и могут найти применение, например, для других стандартов и рекомендаций, что уже существуют, или к тем, что будут разработаны в будущем, а также к дополнениям к таким стандартам и рекомендациям (в том числе - к Части 5 и Части 9 стандарта MPEG-I). Если не указано иначе, и за исключением случаев, когда это технически невозможно, раскрытые в настоящей заявке аспекты можно использовать по отдельности или в комбинации.
Предлагаемое изобретение относится к области технологии кодирования и декодирования и имеет целью создание технического решения для кодирования/декодирования данных облака точек. Поскольку облако точек представляет собой набор данных большого объема, на его хранение может расходоваться большой объем памяти, при этом невозможно передать облако точек непосредственно на сетевом уровне без сжатия облака точек, в связи с чем существует потребность в сжатии облака точек. Поэтому предлагаемое изобретение может найти применение во многих областях, так как облако точек все шире используется в автономной навигации, для контроля в режиме реального времени, в геоинформационных сервисах, в сфере охраны культурного наследия / зданий, при предоставлении услуг связи и взаимодействия с эффектом присутствия в трехмерном пространстве и т.п.
В частности, предлагаемое изобретение относится к кодированию/декодированию данных азимутального угла с учетом характеристик датчика, что позволяет повысить эффективность кодирования геометрических данных снятого облака точек.
Предлагаемое изобретение относится к способу 100 кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект. Способ 100 кодирования включает в себя этап, на котором кодируют в битовом потоке данные азимутального угла, характеризующие азимутальный угол с учетом угла съемки для датчика, снявшего точку Pn облака точек. В основе указанного кодирования лежит граничное значение B, зависящее от характеристик датчика, при этом абсолютное значение указанных данных
азимутального угла ограничено указанным граничным значением B.
По существу, данные азимутального угла - это целочисленное значение, ограниченное граничным значением B:
(9)
Фиг. 10 - блок-схема этапов способа 100 в по меньшей мере одном иллюстративном варианте осуществления.
Способ 100 включает в себя этапы 110 и 120.
На этапе 110 получают данные азимутального угла, характеризующие азимутальный угол
с учетом угла съемки для датчика вращающейся измерительной головки 10, снявшего точку
облака точек, из геометрических данных облака точек, собранных вращающейся измерительной головкой 10.
В первом иллюстративном варианте осуществления этапа 110 данные азимутального угла получают путем квантования разности
первого порядка азимутального угла между данным азимутальным углом
и предсказанным углом
для указанного азимутального угла.
Например, разность первого порядка азимутального угла может представлять собой разность азимутального угла , полученную из уравнения (2) или (6) с необязательным последующим квантованием с использованием оператора Q(.) квантования.
Граничное значение B имеет вид:
B = Q(Δ/2) (10)
Возможно применение любого оператора Q(.) квантования с использованием равномерных или неравномерных шагов и/или мертвой зоны.
В одном из вариантов, квантование разности первого порядка азимутального угла имеет вид:
= Q(
) =
round(
/d
) (11)
где d - шаг квантования.
Далее выводят граничное значение B из уравнения (10):
B = округленно(Δ/(2* d
)) (12)
В этом случае погрешность e в пространстве декартовых координат будет пропорциональна радиусу r2D в двух измерениях (т.е. расстоянию от датчика до точки Pn облака точек), что обусловлено погрешностью величиной до d/2 включительно на восстановленном угле после деквантования.
e ≈ r2D*d/2.
Поэтому, с точки зрения эффективности сжатия, в некоторых случаях наиболее целесообразно выбрать шаг квантования d, в результате чего будут получены равномерные погрешности e, зависящие от радиуса расположения точек в двух измерениях. По сути, можно принять, что
d = dQ /2*r2D,
где dQ - параметр квантования, выбранный пользователем. Обычно dQ равен 1 для кодирования без потерь. Таким образом, уравнение (12) принимает вид
B = округленно(r2D*Δ/dQ) (13)
В этом случае граничное значение B может стать малым для малых радиусов r2D. В крайних случаях, для очень малых радиусов, может быть получено B=0. В подобном случае, данные азимутального угла не нужно кодировать, так как из уравнения (9) известно, что их значение неизбежно равно нулю.
Во втором иллюстративном варианте осуществления этапа 110 данные азимутального угла получают путем прибавления значения поправки, зависящего от граничного значения B, к промежуточным данным
азимутального угла, зависящим от разности
второго порядка азимутального угла между разностью
первого порядка азимутального угла и предсказанным значением
указанной разности первого порядка азимутального угла:
=
-
(14)
В одном из вариантов, предсказанное значение указанной разности первого порядка азимутального угла получают путем квантования разности
первого порядка азимутального угла, относящейся к уже кодированной точке Pal облака точек:
В данной схеме одноцепочечного кодирования, данная уже кодированная точка Pal является предшественником текущей точки Pn в упорядоченном списке точек. В другом варианте данного предшественника выбирают из предшественников с тем же индексом λ лазера, что и у текущей точки Pn.
В одном из вариантов промежуточные данные азимутального угла получают путем квантования разности
второго порядка азимутального угла:
= Q(
) =
= Q(
-
)
В другом варианте промежуточные данные азимутального угла имеют вид разности между квантованной разностью
первого порядка азимутального угла и предсказанным значением
указанной разности первого порядка азимутального угла:
=
-
(15)
где - предсказанное значение квантованной разности
первого порядка азимутального угла или квантованного варианта предсказанного значения разности
первого порядка азимутального угла.
Промежуточные данные азимутального угла в силу свое природы не ограничены значением B.
Прибавляемое значение поправки является произведением целочисленного значения nB,enc на 2B+1, где B - это граничное значение. Целочисленное значение nB,enc обеспечивает то, что абсолютное значение данных азимутального угла будет ограничено граничным значением B (уравнение (9)):
=
+ nB,enc * (2B+1) (16)
где B - это граничное значение, определяемое по уравнению (12).
В одном из вариантов, целочисленное значение nB,enc может быть получено по:
nB,enc = - округленно ( /(2B+1)) (17)
В другом варианте целочисленное значение nB,enc может быть получено путем итеративного применения (прибавления или вычитания) поправки 2B+1 до тех пор, пока отношение ограничения по уравнению (9) не будет соблюдено.
Данный второй вариант осуществления этапа 110 обеспечивает преимущества за счет того, что применение разности второго порядка азимутального угла сокращает диапазон данных
азимутального угла, как разъясняется ниже с помощью Фиг. 11, применительно к одноцепочечному кодированию.
Рассмотрим текущую точку Pn, к которой относятся азимутальный угол и разность
первого порядка азимутального угла, получаемые с помощью уравнения (6):
=
-
=
-
Квантованная азимутальная разность первого порядка (уравнение 11), подлежащая кодированию, имеет вид
= Q(
)=
Далее рассмотрим уже кодированную точку Pal, к которой относятся азимутальный угол и разность
первого порядка азимутального угла, получаемые с помощью уравнения (6):
=
-
=
-
Вместо кодирования квантованной азимутальной разности первого порядка, во втором варианте осуществления этапа 110 получают разность
второго порядка азимутального угла между разностью
первого порядка азимутального угла и предсказанным значением
указанной разности первого порядка азимутального угла, в результате чего получают промежуточные данные
азимутального угла
с помощью уравнения (15):
= Q(
) -
=Q(
) -
=Q( -
)-Q(
-
)
С учетом вращающегося характера вращающейся измерительной головки 10, получают следующее приближение:
а затем
-
-
=
-
Как следствие, подлежащие кодированию промежуточные данные азимутального угла очень малы, что обеспечивает эффективное сжатие.
Ограничение промежуточных данных азимутального угла (квантованной разности
второго порядка азимутального угла) за счет применения целочисленного значения nB,enc обеспечивает нижеследующие преимущества.
На съемку точки может отрицательно повлиять шум датчика, как показано на Фиг. 12. По сравнению с Фиг. 11, уже кодированная точка Pal немного смещена влево из-за некоторого шума ε. Следствием этого является изменение относящегося к ней предсказанного угла с на
, что очень сильно влияет на разность
первого порядка азимутального угла. В данном случае квантованная разность
первого порядка азимутального угла является неудовлетворительным предиктором разности
первого порядка азимутального угла (уравнение 15):
= Q(
) -
=Q(
) -
= Q( -
)-Q(
-
)
Ограничение промежуточных данных азимутального угла с помощью nB,enc по существу устраняет проблему неудовлетворительного предиктора Q(
, так как азимутальный угол
может быть выражен в виде
-
с последующим получением:
-
=
-
-
=
-
В результате чего, после применения оператора квантования, получают приближение:
Q( -
)
-
)
Неограниченные промежуточные данные азимутального угла можно аппроксимировать с помощью
= Q(
-
)-Q(
-
)
,
что явно не соответствует условию об ограничении по уравнению (9).
Поэтому, согласно предлагаемому изобретению, применяют поправку величиной, кратной (2B+1), с коэффициентом nB,enc = +1 (уравнение 16) и получают
=
+ (2B+1)
Данные азимутального угла в этом случае ограничены граничным целочисленным значением B. Данные
азимутального угла в данном случае имеют малый диапазон и могут быть эффективно сжаты путем энтропийного кодирования на основе граничного значения B.
На этапе 120 ограниченные таким образом данные азимутального угла кодируют в битовом потоке с применением граничного значения B.
В одном из иллюстративных вариантов осуществления этапа 120 осуществляют бинаризацию данных азимутального угла (этап 121) с получением последовательности двоичных данных fi и, на этапе 122, кодируют только те двоичные данные fi, для которых ни одно из двух возможных значений не противоречит условию о том, что абсолютное значение данных
ограничено граничным значением B.
В одном из иллюстративных вариантов осуществления, на этапах 121 и 122, на которых осуществляют бинаризацию и кодирование данных азимутального угла с использованием последовательности двоичных данных fi,:
двоичные данные f0 вводят в битовый поток для сигнализации того, что равны нулю (f0=0) или
не равны нулю (f0=1);
если не равны нулю,
в битовый поток вводят флаг знака, сигнализирующий знак ;
в битовый поток вводят последовательность из Nf флагов f1 - fNf, при этом каждый флаг fj сигнализирует, равен ли || j, до тех пор, пока один из этих флагов не будет положительным;
если все флаги отрицательны, т.е. если больше Nf, то осуществляют бинаризацию разности |
| - Nf - 1, используя экспоненциальный код Голомба, с получением дополнительных двоичных данных.
Флаг f0 не нужно кодировать, если граничное значение B равно 0. Аналогичным образом, если данные равны граничному значению B≤Nf, то флаг fB, сигнализирующий о том, равны ли |
| B, не нужно кодировать, так декодер может сделать логический вывод о том, что он является положительным (fB=1); так как в противном случае fB=0, что будет означать, что |
| составляет по меньшей мере B+1, что противоречит свойству ограничения по уравнению (9).
Аналогичным образом, может отсутствовать необходимость кодирования двоичных данных, составляющих экспоненциальный код Голомба, если одно из возможных значений (0 или 1) будет противоречить свойству ограничения по уравнению (9); при этом впоследствии декодер может сделать логический вывод о том, что двоичные данные имеют противоположное значение.
Подразумевается, что в основе кодированных флагов или экспоненциального кода Голомба может лежать арифметическое кодирование, в частности - с использованием контекстно-адаптивного двоичного арифметического кодера (CABAC, англ. Context Adaptive Binary Arithmetic Coder) или иного энтропийного кодера для лучшего сжатия.
В некоторых вариантах также возможно применение иных способов бинаризации или разложения с соблюдением того же принципа - ненужные данные не кодируют, учитывая граничное значение B. Например, последовательность флагов f1 - fNf может быть опущена (т.е. будет применяться Nf=0), и/или вместо экспоненциального кода Голомба может быть использовано другое кодирующее представление с переменной длиной, такое как код Голомба - Райса или код Хаффмана.
Как раскрыто в качестве примера выше, на этапе 122 кодируют только те двоичные данные fi, для которых ни одно из двух возможных значений не противоречит условию о том, что абсолютное значение данных ограничено граничным значением B. Двоичные данные fi, для которых одно из возможных значений противоречит условию об ограничении (9), не подлежат кодированию, так как может быть логически выведено (декодером) единственное значение, не противоречащее данному условию. Отсутствие кодирования таких двоичных данных сокращает размер битового потока, что улучшает сжатие облака точек.
Предлагаемое изобретение также относится к способу 200 декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект. Способ 200 включает в себя этап, на котором декодируют из битового потока данные азимутального угла, характеризующие угол с учетом угла съемки для датчика, снявшего точку облака точек. В основе указанного декодирования лежит граничное значение B, зависящее от характеристик датчика, при этом абсолютное значение указанных данных
азимутального угла ограничено указанным граничным значением B (уравнение (9)).
Фиг. 13 - блок-схема этапов способа 200 в по меньшей мере одном иллюстративном варианте осуществления.
Способ 200 включает в себя этапы 210, 220 и 230.
На этапе 210 получают граничное значение B, используя тот же способ, что и кодер, с помощью уравнения (10), (12) или (13).
На этапе 220 декодируют данные азимутального угла . Декодирование данных
азимутального угла выполняют путем получения значений последовательности двоичных данных fi. Далее вычисляют декодированное значение данных
азимутального угла на основе значений двоичных данных fi. Значение каждых двоичных данных fi либо декодируют из битового потока, либо выводят логически. Если одно из двух возможных значений двоичных данных fi противоречит условию об ограничении (9), то значение логически выводят с получением другого значения, не противоречащего данному условию. Если ни одно из двух возможных значений не противоречит условию об ограничении (9), значение декодируют из битового потока.
Например, рассмотрим первые двоичные данные f0, сигнализирующие, не равны ли (f0=1) или равны (f0=0) данные азимутального угла нулю. Если граничным значением B является ноль, то значение f0 логически выводят с получением значения 1. В противном случае, f0 декодируют.
Предположим, что B>0 и f0 было декодировано в 0, т.е. данные азимутального угла не равны нулю. Далее декодируют бит, указывающий знак данных
азимутального угла. Далее получают значение двоичных данных f1, сигнализирующих, равно ли (f1=1) или нет (f1=0) абсолютное значение
единице. Если B=1, f1 логически выводят с получением значения 1; в ином случае, если B>1, декодируют f1. Тот же процесс применяют к последовательности двоичных данных fi, каждые из которых сигнализируют, что абсолютное значение
равно (fi=1) или не равно (fi=0) i. Если B=i, значение fi логически выводят с получением значения 1.
Этап 220 не ограничен кодированием данных азимутального угла с использованием последовательности двоичных данных. В качестве альтернативы, данные азимутального угла
могут быть кодированы с использованием недвоичного слова W. Условие об ограничении (9) предполагает, что данные
азимутального угла могут включать в себя различные значения 2B+1 в диапазоне от -B до B. Как следствие, данные
азимутального угла могут быть представлены словом W длиной LW, определяемым по формуле
LW = ceil(log2(2B+1)).
Слово W может быть далее включено в состав битового потока, кодируемого любым известным способом, например, простого вталкивания битов или энтропийного кодирования. Знание граничного значения B обеспечивает возможность декодирования по способу 200 декодирования на этапе 220 слова W длиной LW, зависящей от B. Далее восстанавливают данные азимутального угла на основе декодированного слова W.
В другом варианте осуществления этапа 220 данные азимутального угла могут быть кодированы с использованием и последовательности двоичных данных fi, и недвоичного слова W, длина LW которого зависит от граничного значения B. Например, первая часть данных азимутального угла
может быть кодирована с использованием двоичных данных fi, а остальная часть - с использованием недвоичного слова W.
На этапе 230 декодируют декодируемый азимутальный угол , относящийся к точке Pn.
В первом варианте осуществления этапа 230 данные азимутального угла представляют собой квантованную разность
первого порядка азимутального угла (уравнение 11) между данным азимутальным углом
и предсказанным углом
для указанного азимутального угла.
Далее декодируют азимутальный угол (, относящийся к точке Pn облака точек, на основе данных азимутального угла
и предсказанного угла
согласно уравнению (3) или (7):
В этом случае граничное значение B может стать малым для малых радиусов r2D. В крайних случаях, для очень малых радиусов, может быть получено B=0. В подобном случае, данные азимутального угла не нужно декодировать, при этом их логически выводят с получением значения ноль, так как из уравнения (9) известно, что их значение неизбежно равно нулю.
Во втором варианте осуществления этапа 230 граничное значение B получено из уравнения (10). Промежуточную разность азимутального угла получают (этап 231) на основе данных
азимутального угла и предсказанного значения
по формуле
=
+
где - предсказанное значение разности
первого порядка азимутального угла между данным азимутальным углом
и предсказанным углом
для указанного азимутального угла.
В одном из вариантов предсказанное значение указанной разности первого порядка азимутального угла получают путем квантования разности
первого порядка азимутального угла, относящейся к уже декодированной точке Pal облака точек:
На этапе 232 получают разность первого порядка азимутального угла путем прибавления значения поправки, зависящего от граничного значения B, к промежуточной разности
азимутального угла:
=
+ nB,dec * (2B+1)
где nB,dec - целочисленное значение, обеспечивающее то, что разность первого порядка азимутального угла будет ограничена граничным значением B (уравнение (9)):
| | ≤ B (18)
В одном из вариантов целочисленное значение nB,dec может быть получено аналогично тому, как получают nB,enc в ходе кодирования:
nB,dec = - округленно( /(2B+1))
В другом варианте целочисленное значение nB,dec может быть получено путем итеративного применения (прибавления или вычитания) поправки 2B+1 до тех пор, пока отношение ограничения по уравнению (18) не будет соблюдено.
Таким образом, разность первого порядка азимутального угла точно соответствует разности
первого порядка азимутального угла кодера, как доказано ниже.
-nB,dec*(2B+1)==
+
-
=+nB,enc*(2B+1)+
-
=
-
+nB,enc*(2B+1)+
-
= nB,enc * (2B+1) +
-
Далее, разделив на (2B+1) и взяв абсолютное значение, получают
|nB,enc+nB,dec|=|/(2B+1)-
/(2B+1)| ≤
/(2B+1)|+|
/(2B+1)| ≤ B/(2B+1) + B/(2B+1) < 1
В этом случае, поскольку |nB,enc + nB,dec| - это положительное целое число строго меньше 1, неизбежно получают nB,dec = - nB,enc. Это доказывает, что =
, так как
-
= -nB,dec * (2B+1) - nB,enc * (2B+1) = -(nB,dec + nB,enc)*(2B+1) = 0.
Следовательно, разность первого порядка азимутального угла декодера точно соответствует разности
первого порядка азимутального угла кодера. Иначе говоря, прибавление величины, кратной 2B+1, в ходе выполнения способа декодирования не ставит под угрозу способность декодера восстановить адекватное значение для разности первого порядка азимутального угла.
На этапе 233 получают декодированную разность первого порядка азимутального угла путем обратного квантования данной разности
первого порядка азимутального угла.
Декодированный азимутальный угол , относящийся к точке Pn, получают на основе декодированной таким образом разности
первого порядка азимутального угла и предсказанного угла
азимутального угла
согласно уравнению (3) или (7):
Предлагаемый способ кодирования/декодирования может найти применение для кодирования/декодирования облака точек, которое может использоваться для разнообразных целей, в частности - для кодирования/декодирования данных азимутального угла на основе граничного значения, зависящего от характеристик датчика, что позволяет повысить эффективность кодирования.
Фиг. 14 изображает принципиальную блок-схему примера системы, в которой реализованы различные аспекты и иллюстративные варианты осуществления.
Система 300 может быть встроенной в виде одного или нескольких устройств, содержащих разнообразные компоненты, раскрытые ниже. В ряде вариантов осуществления система 300 может быть выполнена с возможностью реализации по меньшей мере одного из раскрытых в настоящей заявке аспектов.
В число примеров оборудования, могущего образовывать систему 300 полностью или частично, входят персональные ЭВМ, ноутбуки, смартфоны, планшетные ЭВМ, абонентские цифровые мультимедийные приставки, приемники цифрового телевидения, персональные системы видеорегистрации, бытовые приборы с сетевыми возможностями, транспортные средства с сетевыми возможностями и относящиеся к ним системы обработки, смонтированные на шлеме устройства отображения (нашлемные дисплеи, очки сквозного просмотра), проекторы (мультимедийные проекторы), системы автоматической виртуальной среды типа «Cave» (англ. Cave Automatic Virtual Environment) (системы с множеством дисплеев), серверы, видеокодеры, видеодекодеры, постпроцессоры обработки выходного сигнала видеодекодера, препроцессоры для создания входного сигнала в видеодекодер, веб-серверы, абонентские приставки, а также иные устройства для обработки облака точек, видеосигнала или изображения, или иные устройства связи. Элементы системы 300, по отдельности или в комбинации, могут быть реализованы в одной интегральной схеме (ИС), нескольких ИС и/или дискретных компонентах. Например, в по меньшей мере одном варианте осуществления, обрабатывающие и кодирующие/декодирующие элементы системы 300 могут быть рассредоточены по нескольким ИС и/или дискретным компонентам. В ряде вариантов осуществления система 300 может быть соединена с возможностью связи с другими аналогичными системами или иными электронными устройствами, например, шиной связи или через специально предназначенные для этого порты ввода и/или вывода.
Система 300 может содержать по меньшей мере один процессор 310, выполненный с возможностью исполнения загруженных в него инструкций для реализации, например, различных раскрытых в настоящей заявке аспектов. Процессор 310 может содержать встроенное запоминающее устройство, интерфейс ввода/вывода, а также разнообразные известные в данной области техники схемы. Система 300 может содержать по меньшей мере одно запоминающее устройство 320 (например, энергозависимое запоминающее устройство и/или энергонезависимое запоминающее устройство). Система 300 может содержать накопитель 340, могущий включать в себя энергонезависимое запоминающее устройство и/или энергозависимое запоминающее устройство, в том числе, помимо прочего, электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), постоянное запоминающее устройство (ПЗУ), программируемое постоянное запоминающее устройство (ППЗУ), оперативное запоминающее устройство (ОЗУ), динамическое оперативное запоминающее устройство (ДОЗУ), статическое оперативное запоминающее устройство (СОЗУ), флэш-память, магнитный диск и/или оптический диск. Накопитель 340 может включать в себя внутренний накопитель, подключенный накопитель и/или доступный через сеть накопитель в качестве неограничивающих примеров.
Система 300 может содержать модуль 330 кодирования/декодирования, например, выполненный с возможностью обработки данных для создания кодированных/декодированных геометрических данных облака точек, при этом модуль 330 кодирования/декодирования может содержать собственные процессор и запоминающее устройство. Модуль 330 кодирования/декодирования может представлять собой модуль(-и)), который может быть включен в состав устройства для выполнения функций кодирования и/или декодирования. Известно, что устройство может содержать модуль кодирования и/или модуль декодирования. Кроме того, модуль 330 кодирования/декодирования может быть реализован в виде отдельного элемента системы 300 или может быть включен в состав процессора 310 в виде комбинации аппаратных и программных средств, как известно специалистам в данной области техники.
Программный код для загрузки в процессор 310 или кодер/декодер 330 для выполнения различных раскрытых в настоящей заявке аспектов может быть сохранен в накопителе 340, а затем загружен в запоминающее устройство 320 для исполнения процессором 310. В ряде вариантов осуществления по меньшей мере один процессор 310, запоминающее устройство 320, накопитель 340 и модуль 330 кодирования/декодирования могут быть выполнены с возможностью запоминания одного или нескольких различных объектов в ходе выполнения раскрытых в настоящей заявке процессов. В число запомненных объектов могут входить, помимо прочих кадр облака точек, кодированные/декодированные геометрия/атрибуты, видеоматериалы/изображения или части кодированных/декодированных геометрии/атрибута, видеоматериалов/изображений, битовый поток, матрицы, переменные, а также промежуточные или окончательные результаты обработки уравнений, формулы, операции или логику действий.
В нескольких вариантах осуществления запоминающее устройство в составе процессора 310 и/или модуля 330 кодирования/декодирования может служить для хранения инструкций и предоставления рабочей памяти для обработки, которая может выполняться в ходе кодирования или декодирования.
При этом в других вариантах осуществления возможно применение запоминающего устройства, внешнего по отношению к обрабатывающему устройству (например, обрабатывающим устройством может быть процессор 310 или модуль 330 кодирования/декодирования), для одной или нескольких из этих функций. Внешним запоминающим устройством может быть запоминающее устройство 320 и/или накопитель 340, например, динамическое энергозависимое запоминающее устройство и/или энергонезависимая флэш-память. В нескольких вариантах осуществления возможно применение вншней энергонезависимой флэш-памяти для хранения операционной системы телевизора. В по меньшей мере одном варианте осуществления возможно применение быстродействующего внешнего энергозависимого запоминающего устройства, в частности - ОЗУ, в качестве рабочей памяти для операций кодирования и декодирования видеосигналов, например, согласно Части 2 стандарта MPEG-2 (также известной как Рекомендация H.262 МСЭ-Т) и ISO/IEC 13818-2 (также известных как видео стандарта MPEG-2), стандарту высокоэффективного видеокодирования (HEVC, англ. High Efficiency Video coding), стандарту универсального видеокодирования (VVC, англ.Versatile Video Coding), Части 5 или Части 9 стандарта MPEG-I.
Входные данные для элементов системы 300 могут поступать через разнообразные устройства ввода, указанные в блоке 390. В число устройств ввода входят, помимо прочих: (i) радиочастотная (РЧ-) часть, могущая принимать РЧ-сигнал, передаваемый, например, в эфире вещателем, (ii) терминал ввода композитного сигнала, (iii) входной разъем по стандарту универсальной последовательной шины (USB-разъем, англ. Universal Serial Bus) и/или (iv) входной разъем по стандарту мультимедийного интерфейса высокой четкости (HDMI-разъем, англ. High Definition Multimedia Interface).
В ряде вариантов осуществления устройства ввода в блоке 390 могут содержать соответственно относящиеся к ним элементы обработки входных данных, известные в данной области техники. Например, к РЧ-части могут относиться элементы, необходимые для: (i) выбора желаемой частоты (также именуемого «выбор сигнала» или «ограничение сигнала по полосе той или иной полосой частот»), (ii) преобразование выбранного таким образом сигнала с понижением частоты, (iii) еще одного ограничения по полосе до более узкой полосы частот с целью выбора (например) полосы частот сигнала, которая в некоторых вариантах осуществления может именоваться «канал», (iv) демодуляции преобразованного с понижением частоты и ограниченного по полосе сигнала, (v) выполнения коррекции ошибок и (vi) демультиплексирования для выбора желаемого потока пакетов данных. РЧ-часть в ряде вариантов осуществления может содержать один или несколько элементов для выполнения данных функций, например, селекторы частот, селекторы сигналов, ограничители полосы, селекторы каналов, фильтры, понижающие преобразователи, демодуляторы, элементы коррекции ошибок и демультиплексоры. РЧ-часть может содержать блок настройки, выполняющий несколько из таких функций, в том числе, например, преобразование принятого сигнала с понижением частоты до более низкой частоты (например, до промежуточной частоты или частоты, близкой к частоте основной полосы) или до частоты основной полосы.
В одном варианте осуществления абонентской приставки РЧ-часть и относящийся к ней элемент обработки входных данных могут принимать РЧ-сигнал, передаваемый в проводной среде (например, по кабелю). Далее РЧ-часть может выполнить выбор частоты путем фильтрации, преобразования с понижением частоты и еще одной фильтрации до желаемой полосы частот.
В некоторых вариантах осуществления изменен порядок размещения вышеуказанных (и прочих) элементов, исключены некоторые из этих элементов и/или добавлены иные элементы, выполняющие аналогичные или другие функции.
Добавление элементов может означать ввод элементов между имеющимися элементами, в частности - ввод усилителей и аналого-цифрового преобразователя. В ряде вариантов осуществления РЧ-часть может содержать антенну.
Кроме того, USB- и/или HDMI-разъемы могут включать в себя соответствующие процессоры сопряжения для подключения системы 300 к другим электронным устройствам посредством USB- и/или HDMI-разъемов. Следует понимать, что различные аспекты обработки входных данных, например, исправление ошибок по методу Рида - Соломона, могут быть реализованы, например, в отдельной ИС обработки входных данных или, при необходимости, в пределах процессора 310. Аналогичным образом, аспекты обработки на интерфейсах по стандартам USB или HDMI могут быть реализованы в отдельных интерфейсных ИС или, при необходимости, в пределах процессора 310. Демодулированный, с исправленными ошибками и демультиплексированный поток может быть доставлен в различные обрабатывающие элементы, в том числе, например, в процессор 310 и кодер/декодер 330, работающие в комбинации с запоминающими и накопительными элементами, для обработки потока данных, необходимой для его представления в выводное устройство.
Различные элементы системы 300 могут быть размещены в общем кожухе. Различные элементы в пределах данного общего кожуха могут быть соединены друг с другом и передавать друг другу данные с помощью подходящего средства соединения 390, например, известной в области техники внутренней шины, в том числе - шины по стандарту I2C, системы проводов и плат с печатной схемой.
Система 300 может содержать связной интерфейс 350, обеспечивающий возможность связи с другими устройствами по каналу 700 связи. Связной интерфейс 350 может включать в себя, помимо прочего, приемопередачик, выполненный с возможностью передачи и приема данных по каналу 700 связи. Связной интерфейс 350 может включать в себя, помимо прочего, модем или сетевую плату, а канал 700 связи может быть реализован, например, в проводной и/или беспроводной среде.
В ряде вариантов осуществления возможна потоковая передача данных в систему 300 по сети на основе технологии Wi-Fi (сети Wi-Fi), например, по стандарту IEEE 802.11. Прием Wi-Fi-сигнала в данных вариантах осуществления может происходить по каналу 700 связи и через связной интерфейс 350, приспособленные для связи по технологии Wi-Fi. Канал 700 связи в данных вариантах осуществления может, как правило, быть подключен к точке доступа или маршрутизатору, обеспечивающему доступ во внешние сети, в том числе - в Интернет, для обеспечения возможности работы приложений потоковой передачи и иных видов связи по технологии «over-the-top» (технологии передачи данных по неуправляемым сетям).
Другие варианты осуществления могут предусматривать потоковую передачу данных в систему 300 с помощью абонентской приставки, доставляющей данные через HDMI-соединение вводного блока 390.
Иные варианты осуществления могут предусматривать потоковую передачу данных в систему 300 через РЧ-разъем вводного блока 390.
Потоковая передача данных может быть одним из способов сигнализации информации, используемой системой 300. Сигнальная информация может содержать битовый поток кодированных данных облака точек, представляющих физический объект, и/или такую информацию, как число точек облака точек, и/или параметры настройки датчика, в частности - элементарный азимутальный сдвиг , и/или граничное значение B, и/или данные
азимутального угла.
Следует понимать, что способы сигнализации информации могут быть самыми разными. Например, один или несколько элементов синтаксиса, флаги и тому подобное могут служить для сигнализации информации соответствующему декодеру в ряде вариантов осуществления.
Система 300 может выдавать выходной сигнал разнообразным выводным устройствам, в том числе - на дисплей 400, динамики 500 и иные периферийные устройства 600. В ряде примеров вариантов осуществления, в число указанных иных периферийных устройств 600 могут входить одно или несколько из следующих: автономное устройство цифровой видеозаписи, проигрыватель дисков, стереофоническая система, система освещения и иные устройства, выполняющие ту или иную функцию на основе выходных данных от системы 300.
В ряде вариантов осуществления передача управляющих сигналов между системой 300 и дисплеем 400, динамиками 500 или иными периферийными устройствами 600 может происходить по таким протоколам, как «AV.Link» (англ. Audio/Video Link - «Аудио/Видео Канал»), CEC (англ. Consumer Electronics Control - «Управление бытовой электронной аппаратурой») или иным протоколам связи, по которым одно устройство может управлять другим устройством с вмешательством или без вмешательства пользователя.
Выводные устройства могут быть соединены с возможностью связи с системой 300 по специально предназначенным для этого каналам связи через соответствующие интерфейсы 360, 370 и 380.
В качестве альтернативы, выводные устройства могут быть соединены с системой 300 по каналу 700 связи через связной интерфейс 350. Дисплей 400 и динамики 500 могут быть объединены в единый блок с прочими компонентами системы 300 в составе электронного устройства, например, телевизора.
В ряде вариантов осуществления интерфейс 360 визуального отображения может содержать задающее устройство визуального отображения, например, микросхему контроллера синхронизации (T Con, англ. timing controller).
В качестве альтернативы, дисплей 400 и динамик 500 могут быть размещены отдельно от одного или нескольких других компонентов, например, если РЧ-часть вводного блока 390 входит в состав отдельной абонентской приставки. В ряде вариантов осуществления, в которых дисплей 400 и динамики 500 могут представлять собой внешние компоненты, подача выходного сигнала может происходить по специально предназначенным для этого каналам связи, в том числе, например, через HDMI-порты, USB-порты или выходные порты связи типа «COMP» (COM-порты, англ. Communications Port).
На Фиг. 1-14 раскрыты несколько способов, при этом каждый из них содержит один или несколько этапов или действий для осуществления раскрываемого способа. За исключением случаев, когда для надлежащего выполнения способа необходим конкретный порядок этапов или действий, можно изменять порядок и/или применение конкретных этапов и/или действий или комбинировать их друг с другом.
Некоторые из примеров раскрыты с отсылкой к блок-схемам и/или схемам последовательности операций. Каждый блок относится к элементу схемы, модулю или части кода, включающим в себя по меньшей мере одну инструкцию, исполняемую для реализации указанной логической функции или функций. Также следует отметить, что в других вариантах реализации выполнение функции или функций может происходить не в том порядке, в котором они указаны в блоках. Например, выполнение двух блоков, которые показаны следующими один за другим, может происходить одновременно или, в некоторых случаях, в обратном порядке в зависимости от задействованных функциональных возможностей.
Раскрытые в настоящей заявке варианты реализации и аспекты могут быть реализованы, например, в способе или процессе, устройстве, программе для ЭВМ, потоке данных, битовом потоке или сигнале. Даже если описана единственная форма реализации (например, только способ), признаки, о которых идет речь, могут быть реализованы и в иных формах (например, в устройстве или программе для ЭВМ).
Способы могут быть реализованы, например, в процессоре, под которым понимаются обрабатывающие устройства в общем смысле, в том числе, например, ЭВМ, микропроцессор, интегральная схема или программируемое логическое устройство. В число процессоров также входят устройства связи.
Кроме того, способы могут быть реализованы в виде инструкций, выполняемых процессором, при этом инструкции (и/или значения данных, полученные в результате реализации какого-либо варианта) могут быть сохранены в читаемом ЭВМ носителе данных. Читаемый ЭВМ носитель данных может быть выполнен в виде читаемого ЭВМ программного продукта, реализованного на одном или нескольких читаемых ЭВМ носителях и содержащего читаемый ЭВМ программный код, реализованный в нем с возможностью исполнения его ЭВМ. Читаемый ЭВМ носитель данных в контексте настоящей заявки может рассматриваться как долговременный носитель данных, учитывая присущую ему способность хранить информацию, а также присущую ему способность обеспечивать поиск информации в нем и извлечения информации из него. Например, читаемый ЭВМ носитель данных может представлять собой, помимо прочего, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, аппаратуру или устройство, либо какую-либо подходящую комбинацию перечисленного. Средний специалист в данной области техники без труда поймет, что приведенные далее более конкретные примеры читаемых ЭВМ носителей данных, к которым применимы варианты осуществления настоящего изобретения, носят исключительно иллюстративный характер и не являются исчерпывающим перечнем: портативная дискета для ЭВМ; жесткий диск; постоянное запоминающее устройство (ПЗУ); стираемое программируемое постоянное запоминающее устройство (СППЗУ или флэш-память); постоянное запоминающее устройство на портативном компакт-диске (CD-ROM, англ. portable compact disc read-only memory); оптический накопитель; магнитный накопитель; или любая подходящая комбинация перечисленного.
Инструкции могут образовывать прикладную программу, физически реализованную в читаемом процессором носителе.
Инструкции могут быть реализованы, например, в аппаратных средствах, аппаратно-программных средствах, программных средствах или их комбинации. Инструкции могут находиться, например, в операционной системе, в отдельном приложении или в их комбинации. Таким образом, процессор может быть охарактеризован, например, и как устройство, выполненное с возможностью осуществления процесса, и как устройство, включающее в себя читаемый процессором носитель (в частности - накопитель), содержащий инструкции для осуществления процесса. Кроме того, читаемый процессором носитель может быть выполнен с возможностью хранения, в дополнение к инструкциям или вместо них, значений данных, полученных в результате реализации какого-либо варианта.
Устройство может быть реализовано, например, соответствующими аппаратными средствами, программными средствами и аппаратно-программными средствами. В число примеров устройства входят персональные ЭВМ, ноутбуки, смартфоны, планшетные ЭВМ, абонентские цифровые мультимедийные приставки, приемники цифрового телевидения, персональные системы видеорегистрации, бытовые приборы с сетевыми возможностями, смонтированные на шлеме устройства отображения (нашлемные дисплеи, очки сквозного просмотра), проекторы (мультимедийные проекторы), системы автоматической виртуальной среды типа «Cave» (системы с множеством дисплеев), серверы, видеокодеры, видеодекодеры, постпроцессоры обработки выходного сигнала видеодекодера, препроцессоры для создания входного сигнала в видеодекодер, веб-серверы, абонентские приставки, а также иные устройства для обработки облака точек, видеосигнала или изображения, или иные устройства связи. Следует понимать, что оборудование может быть подвижным или быть установлено в подвижном транспортном средстве.
Программные средства для ЭВМ могут быть реализованы в процессоре 310, или в аппаратных средствах, или посредством комбинации аппаратных и программных средств. В качестве неограничивающего примера, указанные варианты осуществления также могут быть реализованы с использованием одной или нескольких интегральных схем. Запоминающее устройство 320 может представлять собой запоминающее устройство любого типа, подходящее для данной технической рабочей среды, и может быть реализовано на основе любой подходящей технологии накопления данных, в частности - на основе оптических запоминающих устройств, магнитных запоминающих устройств, запоминающих устройств на основе полупроводников, несъемного запоминающего устройства и съемного запоминающего устройства в качестве неограничивающих примеров. Процессор 310 может представлять собой процессор любого типа, подходящего для данной технической рабочей среды, и может включать в себя один или несколько микропроцессоров, ЭВМ общего назначения, ЭВМ специального назначения и процессоры на основе многоядерной архитектуры в качестве неограничивающих примеров.
Среднему специалисту в данной области техники будет понятно, что варианты реализации предусматривают возможность создания разнообразных сигналов в формате, в котором они могут нести информацию, которая может быть, например, запомнена или передана. Данная информация может содержать, например, инструкции для выполнения способа или данные, полученные в результате реализации одного из раскрытых вариантов. Например, сигнал может быть сформатирован таким образом, чтобы он мог нести битовый поток по тому или иному из раскрытых вариантов осуществления. Такой сигнал может быть сформатирован, например, в виде электромагнитной волны (например, в радиочастотной части спектра) или в виде сигнала основной полосы. Форматирование может включать в себя, например, кодирование потока данных и модулирование несущего сигнала кодированным потоком данных. Информация, которую несет сигнал, может представлять собой, например, аналоговую или цифровую информацию. Сигнал может быть передан по самым разным известным проводным или беспроводным каналам связи. Сигнал может быть запомнен в читаемом процессором носителе.
Используемая в настоящем документе терминология служит исключительно для описания частных вариантов осуществления, но не для того, чтобы ограничить их. В тексте настоящего документа, слова в форме единственного числа с неопределенными и определенными артиклями (англ. «a», «an» и «the») могут также включать в себя значения множественного числа, если это не противоречит контексту. Также следует понимать, что слова «включает в себя / содержит» или «включающий в себя / содержащий» в контексте настоящего описания могут означать, например, наличие указанных признаков, целочисленных значений, этапов, операций, элементов и/или компонентов, но не исключают возможности наличия или добавления одного или нескольких других признаков, целочисленных значений, этапов, операций, элементов, компонентов и/или их групп. Кроме того, если указано, что какой-либо элемент реагирует на действия другого элемента или связан с другим элементом, он может либо непосредственно реагировать на действия такого элемента или быть непосредственно связан с ним, либо возможно наличие элементов-посредников между ними. При этом, если указано, что какой-либо элемент непосредственно реагирует на действия другого элемента или непосредственно связан с ним, между ними отсутствуют элементы-посредники.
Следует понимать, что знак «/» / выражения «и/или» и «по меньшей мере один из», например, в таких случаях, как «A/B», «A и/или B» и «по меньшей мере один из A и B», могут предусматривать возможность выбора первого из перечисленных вариантов (A), или выбора только второго из перечисленных вариантов (B), или выбора обоих вариантов (A и B). В качестве еще одного примера, в таких случаях, как «A, B и/или C» и «по меньшей мере один из A, B и C», такая формулировка предусматривает возможность выбора первого из перечисленных вариантов (A), или выбора только второго из перечисленных вариантов (B), или выбора только третьего из перечисленных вариантов (C), или выбора только первого и второго из перечисленных вариантов (A и B), или выбора только первого и третьего из перечисленных вариантов (A и C), или выбора только второго и третьего из перечисленных вариантов (B и C), или выбора всех трех вариантов (A, и B, и C). Среднему специалисту в данной области и в связанных с ней областях техники будет понятно, что данная возможность может распространяться на любое количество перечисленных объектов.
В настоящей заявке могут быть указаны разнообразные числовые значения. Конкретные значения могут быть приведены в качестве примеров раскрытых целей и аспектов, которые при этом не ограничены данными конкретными значениями.
Следует понимать, что такие слова, как «первый», «второй» и т.д., могут служить в настоящем документе для описания разнообразных элементов, но не ограничивают данные элементы. Эти слова служат исключительно для проведения различия между элементами. Например, «первый элемент» может быть назван «второй элемент», а «второй элемент» может быть аналогичным образом назван «первый элемент» без отступления от идей изобретения по настоящей заявке. Они не предполагают наличия какого-либо порядка следования первого элемента и второго элемента.
Во многих случаях упоминается «один иллюстративный вариант осуществления», или «один из иллюстративных вариантов осуществления», или «один вариант реализации», или «один из вариантов реализации», а также иные разновидности данных выражений, которые означают, что тот или иной частный признак, структура, характеристика и т.п. (раскрываемые применительно к данному варианту осуществления/реализации), содержится в по меньшей мере одном варианте осуществления/реализации. Таким образом, в выражениях «в одном иллюстративном варианте осуществления», или «в одном из иллюстративных вариантов осуществления», или «в одном варианте реализации», или «в одном из вариантов реализации», встречающихся в разных частях настоящей заявке, речь не обязательно идет об одном и том же варианте осуществления.
Аналогичным образом, выражения «по одному из иллюстративных вариантов осуществления / примеру / варианту реализации» или «в одном из иллюстративных вариантов осуществления / примере / варианте реализации», а также разновидности этих выражений, часто встречающиеся в настоящем документе, означают, что тот или иной частный признак, структура или характеристика (раскрываемые применительно к данному иллюстративному варианту осуществления / примеру / варианту реализации), может содержаться в по меньшей мере одном иллюстративном варианте осуществления / примере / варианте реализации. Таким образом, случаи использования выражения «по одному из иллюстративных вариантов осуществления / примеру / варианту реализации» или «в одном из иллюстративных вариантов осуществления / примере / варианте реализации» в различных частях описания не обязательно относятся к одному и тому же иллюстративному варианту осуществления / примеру / варианту реализации, а также не означают, что отдельные или альтернативные иллюстративные варианты осуществления / примеры / варианты реализации являются взаимоисключающими.
Номера позиций, встречающиеся в пунктах формулы изобретения, имеют исключительно иллюстративный характер и ни в коей мере не ограничивают объем пунктов формулы. Даже если это явным образом не раскрыто, варианты / примеры осуществления настоящего изобретения и их разновидности могут применяться в любой комбинации или подкомбинации.
Если какая-либо фигура представлена в виде схемы последовательности, следует понимать, что она также представляет блок-схему соответствующего устройства. Аналогичным образом, если фигура представлена в виде блок-схемы, следует понимать, что она также представляет схему последовательности соответствующего способа / процесса.
Некоторые схемы содержат стрелки на коммуникационных путях, указывающих основное направление передачи данных, при этом следует понимать, что передача данных может происходить в направлении, противоположном указанному стрелкой.
В ряде вариантов реализации речь идет о декодировании. Понятие «декодирование» в контексте настоящей заявки может включать в себя все процессы или часть процессов, выполняемых, например, в отношении принятого кадра облака точек (в том числе, возможно, в отношении принятого битового потока, в котором закодирован по меньшей мере один кадр облака точек) для получения конечных выходных данных, пригодных для визуального отображения или дальнейшей обработки в восстановленной области облака точек. В ряде вариантов осуществления такие процессы включают в себя один или несколько процессов, обычно выполняемых декодером. В ряде вариантов осуществления такие процессы, дополнительно или в качестве альтернативы, включают в себя процессы, выполняемые, например, декодером по различным вариантам реализации, раскрытым в настоящей заявке.
В качестве дополнительных примеров, в одном варианте осуществления «декодирование» может означать только деквантование, в одном варианте осуществления «декодирование» может означать энтропийное декодирование, в другом варианте осуществления «декодирование» может означать только дифференциальное декодирование, а в другом варианте осуществления «декодирование» может означать комбинации деквантования, энтропийного декодирования и дифференциального декодирования. Означает ли выражение «процесс декодирования» какой-либо частный поднабор операций или процесс декодирования в более широком смысле, станет понятно из контекста конкретных описаний, при этом считается, что специалисты в данной области техники без труда поймут это.
В ряде вариантов реализации речь идет о кодировании. Аналогично сказанному выше в отношении «декодирования», «кодирование» в контексте настоящей заявки может включать в себя все процессы или часть процессов, выполняемых, например, в отношении вводного кадра облака точек для получения кодированного битового потока. В ряде вариантов осуществления такие процессы включают в себя один или несколько процессов, обычно выполняемых кодером. В ряде вариантов осуществления такие процессы, дополнительно или в качестве альтернативы, включают в себя процессы, выполняемые, например, кодером по различным вариантам реализации, раскрытым в настоящей заявке.
В качестве дополнительных примеров, в одном варианте осуществления «кодирование» может означать только квантование, в одном варианте осуществления «кодирование» может означать только энтропийное кодирование, в другом варианте осуществления «кодирование» может означать только дифференциальное кодирование, а в другом варианте осуществления «кодирование» может означать комбинации квантования, дифференциального кодирования и энтропийного кодирования. Означает ли выражение «процесс кодирования» какой-либо частный поднабор операций или процесс кодирования в более широком смысле, станет понятно из контекста конкретных описаний, при этом считается, что специалисты в данной области техники без труда поймут это.
Кроме того, в настоящей заявке может идти речь об «определении» различных порций информации. Определение информации может включать в себя, например, по меньшей мере одно из следующего: расчетную оценку информации, вычисление информации, предсказание информации или выборку информации из запоминающего устройства.
Кроме того, в настоящей заявке может идти речь о «доступе» к различным порциям информации. Доступ к информации может включать в себя, например, по меньшей мере одно из следующего: получение информации, выборку информации (например, из запоминающего устройства), запоминание информации, перемещение информации, копирование информации, вычисление информации, определение информации, предсказание информации или расчетную оценку информации.
Кроме того, в настоящей заявке может идти речь о «получении» различных порций информации. Понятие «получение», как и «доступ», используется в широком смысле. Получение информации может включать в себя, например, по меньшей мере одно из следующего: доступ к информации или выборку информации (например, из запоминающего устройства). Кроме того, «получение» обычно так или иначе происходит в ходе таких операций, как, например, запоминание информации, обработка информации, передача информации, перемещение информации, копирование информации, стирание информации, вычисление информации, определение информации, предсказание информации или расчетная оценка информации.
Кроме того, в контексте настоящей заявки слово «сигнал» означает, помимо прочего, сигнализацию чего-либо соответствующему декодеру. Например, в некоторых вариантах осуществления кодер сигнализирует определенную информацию, в частности - число точек облака точек и/или параметры настройки датчика, например, элементарный азимутальный сдвиг , и/или граничное значение B, и/или данные
азимутального угла. Таким образом, в том или ином варианте осуществления один и тот же параметр может использоваться как на стороне кодера, так и на стороне декодера. Так, например, кодер может передавать (явная сигнализация) определенный параметр декодеру, в результате чего декодер может использовать тот же самый определенный параметр. И наоборот, если декодер уже имеет данный определенный параметр, как и прочие, может использоваться сигнализация без передачи (неявная сигнализация) просто для того, чтобы декодер мог узнать и выбрать данный определенный параметр. Избегая передачи каких-либо фактических функциональный данных, в ряде вариантов осуществления можно обеспечить экономию битов. Следует понимать, что сигнализация может быть реализована самыми разными путями. Например, один или несколько элементов синтаксиса, флаги и т.п. служат для сигнализации информации соответствующему декодеру в ряде вариантов осуществления. Несмотря на то, что выше шла речь о глаголе от слова «сигнал», слово «сигнал» также может использоваться в настоящем документе как существительное.
Выше были раскрыты несколько вариантов реализации. При этом следует понимать, что в них могут быть внесены разнообразные изменения. Например, элементы разных вариантов реализации можно комбинировать, дополнять, изменять или исключать для получения новых вариантов реализации. Кроме того, среднему специалисту в данной области техники будет понятно, что раскрытые конструкции и процессы могут быть заменены другими, а полученные таким образом варианты реализации будут выполнять, по меньшей мере, по существу ту же функцию / функции, по меньшей мере, по существу тем же путем / путями с достижением, по меньшей мере, того же результата / результатов, что и в раскрытых вариантах реализации. Поэтому в настоящей заявке предусмотрена возможность этих и иных вариантов реализации.
Изобретение относится к сжатию облака точек и, в частности, к кодированию и декодированию геометрических данных облака точек, собранных вращающейся измерительной головкой. Технический результат заключается в повышения эффективности кодирования геометрических данных облака точек. Такой результат достигается за счет того, что кодируют в битовый поток данные азимутального угла, характеризующие разность азимутального угла, полученную из азимутального угла
с учетом угла съемки для датчика, снявшего точку облака точек, при этом абсолютное значение данных
азимутального угла ограничено граничным значением (B), которое зависит от характеристик датчика и параметра кодирования разности азимутального угла. Разность азимутального угла представляет собой разность между азимутальным углом
и предсказанным углом
для данного азимутального угла, при этом предсказанный угол
для точки Pn облака точек вычислен на основе угла
уже кодированной точки Pal путем его сдвига на величину, кратную элементарному азимутальному сдвигу
. 2 н. и 10 з.п. ф-лы, 14 ил.
1. Способ кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект, включающий этап, на котором кодируют в битовый поток данные азимутального угла, характеризующие разность азимутального угла, полученную из азимутального угла
с учетом угла съемки для датчика, снявшего точку облака точек, при этом абсолютное значение данных
азимутального угла ограничено граничным значением (B), которое зависит от характеристик датчика и параметра кодирования разности азимутального угла, разность азимутального угла представляет собой разность между азимутальным углом
и предсказанным углом
для данного азимутального угла, при этом предсказанный угол
для точки Pn облака точек вычислен на основе угла
уже кодированной точки Pal путем его сдвига на величину, кратную элементарному азимутальному сдвигу
.
2. Способ по п. 1, отличающийся тем, что данные азимутального угла получают путем квантования разности
первого порядка азимутального угла между данным азимутальным углом
и предсказанным углом
для данного азимутального угла.
3. Способ по п. 1, отличающийся тем, что данные азимутального угла получают путем прибавления значения поправки, зависящего от граничного значения (B), к промежуточным данным (
) азимутального угла, зависящим от разности
второго порядка азимутального угла между разностью
первого порядка азимутального угла и предсказанным значением (
) разности первого порядка азимутального угла.
4. Способ по п. 3, отличающийся тем, что значение поправки является произведением целочисленного значения (nB,enc) на 2B+1, где B представляет собой граничное значение, при этом данное целочисленное значение (nB,enc) обеспечивает то, что абсолютное значение данных азимутального угла будет ограничено граничным значением (B).
5. Способ по одному из пп. 1-4, отличающийся тем, что граничное значение (B) зависит от элементарного сдвига азимутального угла и параметра квантования, используемого для квантования разности азимутального угла.
6. Способ по одному из пп. 1-5, отличающийся тем, что на этапе, на котором кодируют данные азимутального угла, дополнительно:
осуществляют бинаризацию данных азимутального угла с получением последовательности двоичных данных (fi); и
кодируют только те двоичные данные (fi), для которых ни одно из двух возможных значений не противоречит условию о том, что абсолютное значение данных ограничено граничным значением (B).
7. Способ декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, включающий этап, на котором декодируют из битового потока данные азимутального угла, характеризующие разность азимутального угла, полученную из азимутального угла
с учетом угла съемки для датчика, снявшего точку облака точек, при этом абсолютное значение данных
азимутального угла ограничено граничным значением (B), которое зависит от характеристик датчика и параметра кодирования разности азимутального угла, разность азимутального угла представляет собой разность между азимутальным углом
и предсказанным углом
для данного азимутального угла, при этом предсказанный угол
для точки Pn облака точек вычислен на основе угла
уже кодированной точки Pal путем его сдвига на величину, кратную элементарному азимутальному сдвигу
.
8. Способ по п. 7, отличающийся тем, что на этапе, на котором декодируют данные азимутального угла, получают последовательность двоичных данных (fi), представляющих данные
азимутального угла, путем, для каждых двоичных данных (fi):
либо декодирования двоичных данных (fi) из битового потока, если ни одно из двух возможных значений не противоречит условию о том, что абсолютное значение данных азимутального угла ограничено граничным значением (B);
либо логического выведения значения двоичных данных (fi) из единственного значения, не противоречащего данному условию.
9. Способ по п. 7 или 8, отличающийся тем, что данные азимутального угла представляют собой квантованную разность
азимутального угла между данным азимутальным углом
и предсказанным углом
для данного азимутального угла.
10. Способ по п. 7, отличающийся тем, что способ дополнительно включает этапы, на которых:
получают (231) промежуточную разность азимутального угла на основе данных
азимутального угла и предсказанного значения
первой разности азимутального угла между данным азимутальным углом
и предсказанным углом
для данного азимутального угла;
получают (232) разность первого порядка азимутального угла путем прибавления значения поправки, зависящего от граничного значения (B), к промежуточной разности
азимутального угла; и
выполняют обратное квантование (233) данной разности первого порядка азимутального угла.
11. Способ по п. 10, отличающийся тем, что значение поправки является произведением целочисленного значения (nB,dec) на 2B+1, где B – это граничное значение, при этом данное целочисленное значение (nB,dec) обеспечивает то, что абсолютное значение промежуточной разности азимутального угла будет ограничено граничным значением (B).
12. Способ по одному из пп. 7-11, отличающийся тем, что граничное значение (B) зависит от элементарного сдвига азимутального угла и параметра квантования, используемого для обратного квантования разности азимутального угла.
"G-PCC codec description", 132 | |||
MPEG MEETING; 20201012 - 20201016; ONLINE (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/ WG11), no | |||
Способ приготовления хромовой протравы | 1929 |
|
SU19620A1 |
WO 2020248187 A1, 17.12.2020 | |||
US 20150373334 A1, 24.12.2015 | |||
CN 111373758 A, 03.07.2020 | |||
УСТРОЙСТВО КОДИРОВАНИЯ И СПОСОБ КОДИРОВАНИЯ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ | 2016 |
|
RU2721678C2 |
Авторы
Даты
2024-12-23—Публикация
2021-10-13—Подача