ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННУЮ ЗАЯВКУ
По этой заявке испрашивается приоритет по Европейской заявке на патент № EP21305455.4, поданной 8 апреля 2021 г., содержание которой настоящим включено в настоящее раскрытие путем ссылки в полном объеме.
ОБЛАСТЬ ТЕХНИКИ
Настоящая заявка в целом относится к сжатию облака точек и, в частности, к способам и устройствам кодирования/декодирования геометрических данных облака точек с использованием режима азимутального кодирования.
УРОВЕНЬ ТЕХНИКИ
Настоящий раздел предназначен для ознакомления читателя с различными аспектами области техники, которые могут быть связаны с различными аспектами по меньшей мере одного примерного варианта выполнения настоящей заявки, который описан и/или заявлен ниже. Предполагается, что это обсуждение поможет предоставить читателю информацию об уровне техники, способствующую лучшему пониманию различных аспектов настоящей заявки.
В качестве формата представления 3D данных в последнее время все большее распространение получают облака точек, так как они универсальны по своим возможностям представления всех типов физических объектов или сцен. Облака точек могут быть использованы для различных целей, таких как культурное наследие/здания, при этом такие объекты, как статуи или здания, сканируются в 3D, чтобы совместно использовать пространственную конфигурацию объекта без его отправки или посещения. Кроме того, это способ обеспечить сохранность знаний об объекте в случае его разрушения, например, храма в результате землетрясения. Такие облака точек обычно являются статическими, цветными и огромными.
Другим случаем использования являются топография и картография, в которых использование 3D представлений позволяет создавать карты, которые не ограничены плоскостью и могут включать рельеф. В настоящее время Google Maps является хорошим примером использования 3D карт, но вместо облаков точек использует ячейки. Тем не менее, облака точек могут быть подходящим форматом данных для 3D карт, и такие облака точек обычно являются статическими, цветными и огромными.
Виртуальная реальность и иммерсивные миры в последнее время стали горячими темами, и многие считают, что за ними будущее двухмерного плоского видео. Базовая идея заключается в том, чтобы погрузить зрителя в среду, которая окружает зрителя, в отличие от стандартного телевизора, в котором зритель может только смотреть на виртуальный мир, находящийся перед зрителем. Существует несколько градаций в иммерсивности в зависимости от степени свободы зрителя в окружающей среде. Облако точек является хорошим кандидатом формата для распространения миров виртуальной реальности (VR).
Автомобильная промышленность и автономные автомобили также являются областями, в которых могут быть использованы облака точек. Автономные автомобили должны иметь возможность «зондировать» их окружающую среду, чтобы принимать правильные решения по вождению, основанные на реальности их непосредственных соседей.
Облако точек представляет собой набор точек, расположенных в трехмерном (3D) пространстве, возможно с дополнительными значениями, привязанными к каждой из точек. Эти дополнительные значения обычно называют атрибутами. Атрибутами могут быть, например, трехкомпонентные цвета, свойства материала, такие как отражательная способность, и/или двухкомпонентные нормальные векторы к поверхности, ассоциированной с точкой.
Облако точек, таким образом, представляет собой комбинацию геометрии (3D местоположения точек в 3D пространстве, представленное 3D декартовыми координатами x,y,z) и атрибутов.
Облака точек могут быть получены с помощью различных типов устройств, таких как массив камер, датчики глубины, лазеры (обнаружения света и определения дальности - LIDAR), сканеры, а также могут быть сгенерированы компьютером (например, при постпроизводстве фильмов). В зависимости от случаев использования облака точек могут иметь от тысяч до миллиардов точек для картографических применений. Необработанные представления облаков точек требуют очень большого числа битов на точку, по меньшей мере, дюжины битов на каждую декартову координату x, y или z, и, возможно, больше битов для атрибута(ов), например, трижды по 10 битов для цветов.
Во многих применениях важно иметь возможность распространять динамические облака точек к конечному пользователю (или хранить их на сервере), потребляя только разумную величину битовой скорости (или дискового пространства для приложений хранения данных) при сохранении приемлемого (или предпочтительно очень хорошего) качества восприятия. Эффективное сжатие этих динамических облаков точек является ключевым моментом, позволяющим сделать практичной цепочку распространения многих иммерсивных миров.
Сжатие может осуществляться с потерями (как при сжатии видео) для распространения к конечному пользователю и визуализации конечным пользователем, например, на очках AR/VR или любом другом устройстве с поддержкой 3D. Другие случаи использования требуют сжатия без потерь, например, медицинские применения или автономное вождение, чтобы избежать изменения результатов решения, полученного в результате анализа сжатого и переданного облака точек.
До недавнего времени сжатие облаков точек (также известное как PCC) не было представлено на массовом рынке, и не существовало стандартизованного кодека облаков точек. В 2017 году рабочая группа по стандартизации ISO/JCT1/SC29/WG11, известная также как Экспертная группа по движущимся изображениям или MPEG, инициировала рабочие пункты по сжатию облаков точек. Это привело к появлению двух стандартов, а именно:
- MPEG-I часть 5 (ISO/IEC 23090-5) или Сжатие облака точек на основе видео (V-PCC)
- MPEG-I часть 9 (ISO/IEC 23090-9) или Сжатие облака точек на основе геометрии (G-PCC)
Способ кодирования V-PCC сжимает облако точек путем выполнения множества проекций 3D объекта для получения 2D участков, которые упаковывают в изображение (или видео, если речь идет о движущихся облаках точек). Полученные изображения или видео затем сжимают с использованием уже существующих кодеков изображений/видео, что позволяет использовать уже развернутые решения для изображений и видео. По своей природе V-PCC эффективен только для плотных и непрерывных облаков точек, поскольку кодеки изображений/видео не способны сжимать негладкие участки, которые были бы получены в результате проецирования, например, разреженных геометрических данных, захваченных с помощью лидара.
Способ кодирования G-PCC имеет две схемы сжатия захваченных разреженных геометрических данных.
Первая схема основана на представлении геометрии облака точек в виде дерева занятости (октодерева). Занятые узлы разбиваются на части до тех пор, пока не будет достигнут определенный размер, а занятые листовые узлы обеспечивают 3D местоположения точек. Листовой узел обычно представляют в виде объема, обычно куба заданного размера в известном 3D местоположении. Центр этого объема может определять 3D местоположение одной точки. Альтернативно, предполагаемый режим прямого кодирования (IDCM) может быть использован для прямого кодирования 3D местоположения точки внутри листового узла, принадлежащего дереву занятости. Разреженные облака точек могут извлечь выгоду из предполагаемого режима прямого кодирования (IDCM), прямым кодированием 3D-местоположения одной или нескольких точек внутри узла с неминимальным размером, остановкой построения дерева, когда в узле присутствуют только изолированные точки.
Вторая схема основана на прогнозирующем дереве, каждый узел которого представляет 3D местоположение одной точки, а связь между узлами представляет собой пространственное прогнозирование от родительского узла к дочерним. Этот способ позволяет работать только с разреженными облаками точек и предлагает преимущество в виде более низкой задержки и более простого декодирования по сравнению с деревом занятости. Однако производительность сжатия лишь незначительно лучше, а кодирование является сложным, относительно первого способа, основанного на занятости, интенсивно ищущего лучший предиктор (среди длинного списка потенциальных предикторов) при построении прогнозирующего дерева.
В первой схеме был введен режим азимутального кодирования для улучшения IDCM, применяемого к текущему листовому узлу. В основном, режим азимутального кодирования использует азимутальные углы уже закодированных точек (принадлежащих уже закодированным листовым узлам) для получения серии битов для кодирования координаты x или y точки облака точек. Это очень значительно улучшает сжатие данных о местоположении точки относительно текущего листового узла. Во-первых, направление азимутального кодирования (либо по оси x, либо по оси y горизонтальной плоскости), для которого координата точки P будет кодироваться с помощью контекстно-адаптивного двоичного энтропийного кодирования, выбирают на основе координат x и y точки P (в пределах текущего узла) относительно осей x и y. Например, направление азимутального кодирования вдоль оси x, если , где и являются координатами x и y, представляющими текущее местоположение листового узла, в противном случае - вдоль оси y. Например, и могут быть координатами x и y центра текущего листового узла. Обозначим (xP, yP, zP) координаты точки P. В случае если выбранное направление азимутального кодирования проходит вдоль оси x (соответственно y), то обрабатывают следующее кодирование координат:
- Сначала кодируют биты координат yP (соответственно xP),
- Далее биты координат xP (соответственно yP) кодируют с помощью контекстно-адаптивного двоичного энтропийного кодирования,
- и, наконец, координаты zP точки P кодируют энтропийно.
Первое кодирование yP (соответственно xP) может быть выполнено с использованием обходного энтропийного кодирования, т.е. биты, представляющие yP (соответственно xP), просто помещают в битовый поток. Альтернативно, первое кодирование yP (соответственно xP) может быть выполнено с использованием контекстно-адаптивного двоичного энтропийного кодирования.
На Фигурах углы изображены однозначно в виде точек на отрезке прямой, поддерживающей интервал. Углу соответствует уникальная точка на отрезке прямой, а любой точке соответствует уникальный азимутальный угол. В последующем, азимутальный угол, ассоциированный с точкой, определяют между, с одной стороны, линией, соединяющей начало 2D (xy) горизонтальной плоскости с точкой, и, с другой стороны, осью x. Это соответствует классическому определению азимутальных углов
= atan2(yP, xP) = atan (yP / xP).
Изобретение не ограничивается этим определением азимутальных углов и может, например, использовать альтернативную ось для начала () углов.
Фиг. 1 иллюстрирует блок-схему этапов способа 100 кодирования координаты x точки с использованием режима азимутального кодирования в случае, когда направление азимутального кодирования проходит вдоль оси x в соответствии с предшествующим уровнем техники.
Способ 100 подробно описан, когда направление азимутального кодирования проходит вдоль оси x. Эквивалентный способ может быть выведен, если направление азимутального кодирования проходит вдоль оси y, путем замены координаты x и оси x на координату y и ось y соответственно и в обратном порядке.
На этапе 101 выделяют точку P с координатами (xP, yP, zP) в текущем (листовом) узле, и выбирают направление азимутального кодирования (здесь вдоль оси x), вдоль которого одна координата точки (здесь xP) будет закодирована с помощью контекстно-адаптивного двоичного энтропийного кодирования в битовом потоке B.
На этапе 102 другую координату точки (здесь yP) вдоль противоположного направления (здесь оси y) кодируют с помощью обходного энтропийного кодирования в битовом потоке B.
На этапе 103 определяют азимутальный угол прогнозирования для точки P. Этот азимутальный угол прогнозирования получают из азимутального угла (ближайшей) уже закодированной точки и из множества элементарного азимутального сдвига , представляющего собой вращающуюся выборку датчика. Целое число может быть выбрано таким образом, чтобы получить ближайший возможный угол (среди всех возможных вариантов выбора для ) от азимутального угла, ассоциированного с центром текущего узла.
На этапе 104 инициализируют родительский интервал (здесь интервал x) вдоль направления азимутального кодирования (здесь ось x).
Графически, как изображено на Фиг. 2, в 2D xy плоскости этот интервал принадлежит линии, параллельной направлению азимутального кодирования (здесь ось x), с противоположной координатой (здесь yP), которая уже была закодирована. Интервал (здесь x) представляет собой пересечение этой линии (y=yP) и проекции текущего узла на 2D xy плоскость.
На этапе 105 интервал x разделяют на два полуинтервала: левый полуинтервал и правый полуинтервал. Определяют два угла и . Угол представляет собой угол, связанный с левым полуинтервалом, а угол представляет собой угол, ассоциированный с правым полуинтервалом.
На этапе 106 выбирают контекст на основе угла прогнозирования и двух углов и
Например, рассмотрим Фиг. 3, на котором изображена примерная точка, положение которой в интервале вдоль оси x (выбранное направление азимутального кодирования) представлено 3 битами bd (d=1,2,3), представляющими положение точки среди 8 возможностей. Первый бит (b1) равен 0, если кодируемая точка является одной из четырех точек слева, и равен 1, если кодируемая точка является одной из четырех точек справа. Угол прогнозирования дает некоторую прогнозирующую информацию о положении точки в том смысле, что, поскольку угол прогнозирования указывает на левый полуинтервал, статистически более вероятно, что кодированная точка принадлежит к левому полуинтервалу (т.е. bd=0), чем к правому полуинтервалу (т.е. bd=1). Можно просто извлечь пользу из информации, которую несет угол прогнозирования, сравнив разности углов и , а затем выбрать контекст соответственно. Например,
- если выбрать первый контекст для энтропийного кодирования bd,
- в противном случае выбрать второй контекст для энтропийного кодирования bd.
На этапе 107 оставшийся бит bd высшего порядка для xP кодируют с помощью контекстно-адаптивного двоичного энтропийного кодирования в битовый поток B с использованием выбранного контекста. Этот бит bd указывает, что xP находится либо в левом полуинтервале (bd=0), либо в правом полуинтервале (bd=1).
На этапе 108 обновляют интервал x как полуинтервал, которому принадлежит xP (как указано кодированным битом bd). Если кодированный бит bd равен 0, это указывает, что xP находится в левом полуинтервале, а интервал x обновляют как левый полуинтервал. Если кодированный бит bd равен 1, это указывает, что xP находится в правом полуинтервале, а интервал обновляют как правый полуинтервал.
Далее способ проверяет, завершено ли кодирование xP или нет. Например, способ проверяет, меньше ли обновленный размер интервала или равен минимальному размеру интервала x, или эквивалентно проверяет, все ли биты bd кодированы.
Если кодирование xP завершено (т.е., например, если размер интервала x меньше или равен минимальному размеру интервала x), то на этапе 109 оставшуюся координату zP кодируют в битовый поток B.
Если кодирование xP не завершено, следует перейти к этапу 105 для кодирования следующего бита bd+1, представляющего xP.
Фиг. 4 иллюстрирует обновление интервала x, когда бит bd указывает на то, что xP находится в пределах правого полуинтервала. Правый полуинтервал на текущей итерации (глубина d-1) делят на следующей итерации (глубина d) на два полуинтервала на этапе 105.
В текущей Тестовой модели стандарта G-PCC на этапе 105 два угла и могут быть определены из положений xleft,d и xright,d, представляющих (но не обязательно равных) середину двух полуинтервалов. Самый простой способ рассчитать эти два угла состоит в использовании формул арктангенса, как проиллюстрировано на Фиг. 5.
Вычислительные затраты на вычисление двух функций арктангенса могут являться проблемой на некоторых платформах.
Чтобы избежать вычисления двух арктангенсов для кодирования каждого бита bd координаты точки вдоль направления азимутального кодирования, реализация тестовой модели G_PCC использует определенные значения xleft,d,d и xright,d, как изображено на Фиг. 6. А именно, xleft,d - это крайняя левая граница интервала x, а xright,d - середина интервала x. Таким образом, обновленный интервал (полуинтервал) может наследовать один угол своего родительского интервала, чтобы получить обновленный угол
- если bd-1=0, угол
- если bd-1=1, угол
Таким образом, на каждой итерации (на каждой глубине d) выполняют только одну функцию арктангенса для вычисления .
Взяв углы и , как показано на Фиг. 6, реализация Тестовой модели G_PCC жертвует эффективностью сжатия, поскольку два угла плохо представляют середины полуинтервалов, в пользу простоты вычислений.
Чтобы понять, почему эффективность сжатия не является оптимальной, вернемся к примеру Фиг. 6. При использовании выбранного контекста в контекстно-адаптивном двоичном энтропийном кодере (например, CABAC) для кодирования бита bd вероятности кодирования будут развиваться естественным образом так, что p(bd=1) <0,5 для первого контекста и p(bd=1) >0,5 для второго контекста. Как общее правило, принимая вероятность того, что бит bd равен 1, стоимость кодирования 1 равна , а стоимость кодирования 0 равна .
Из Фиг. 5 понятно, что вероятности, ассоциированные с выбранным контекстом, соответствуют снижению стоимости кодирования, так как bd=0 или bd=1 хорошо предвидятся выбором контекста, когда угол указывает на середину левого полуинтервала, а угол указывает на середину правого полуинтервала.
Фиг. 7 показывает ту же примерную точку, но с углами и , как в предшествующем уровне техники, изображенную на Фиг. 6 и реализованную в Тестовой модели G-PCC. На этом примере угол прогнозирования по-прежнему указывает на левый полуинтервал, что указывает на то, что вероятность bd=0 выше, чем bd=1. Однако при выборе контекста будет выбран второй контекст, поскольку он имеет с особой конкретной конфигурацией углов.
Такой неправильный выбор контекста влияет на стоимость кодирования бита bd, поскольку вполне вероятно, что bd = 0 кодируют вторым контекстом, который имеет вероятность p(bd=0) = 1 - p(bd=1) < 0,5, и стоимость кодирования является высокой.
Таким образом, углы и , используемые для выбора контекста в текущей тестовой модели (TMC13), являются немного субоптимальными и приводят к неоптимальной эффективности сжатия.
Таким образом, получение оптимальных углов и чтобы повысить эффективность сжатия при сохранении приемлемой сложности является крайне необходимым. В основном, поддержание разумной сложности в основном означает минимизацию вычислений сложных функций арктангенса.
По меньшей мере один примерный вариант выполнения настоящей заявки был разработан с учетом вышеизложенного.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Следующий раздел представляет упрощенную сущность по меньшей мере одного примерного варианта выполнения, чтобы обеспечить базовое понимание некоторых аспектов настоящей заявки. Эта сущность не является обширным обзором одного примерного варианта выполнения. Оно не предназначено для определения ключевых или критических элементов варианта выполнения. Следующая сущность представляет некоторые аспекты по меньшей мере одного из примерных вариантов выполнения в упрощенной форме в качестве предварительного описания более подробного описания, предоставленного в другом месте документа.
Вкратце, настоящее изобретение относится к режиму азимутального кодирования, который использует угловую интерполяцию для определения углов и на основе смещений и унаследованных углов, ассоциированных с родительским интервалом, используемым для кодирования предыдущего бита.
Настоящее изобретение позволяет избежать систематического выполнения функции арктангенса для угла и функции арктангенса для угла на каждой итерации режима азимутального кодирования. Он повышает эффективность сжатия по сравнению с рассмотренным выше режимом азимутального кодирования при сохранении приемлемой сложности. Это также обеспечивает гибкость в выборе углов и.
Согласно первому аспекту настоящей заявки предложен способ кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект, при этом способ содержит режим азимутального кодирования, обеспечивающий серию битов для кодирования координаты точки облака точек, причем способ включает этапы, на которых:
- разделяют родительский интервал, которому принадлежит координата точки, на левый полуинтервал и правый полуинтервал;
- интерполируют левый угол, ассоциированный с левым полуинтервалом, и правый угол, ассоциированный с правым полуинтервалом, из по меньшей мере одного унаследованного угла, ассоциированного с родительским интервалом;
- выбирают контекст в зависимости от левого угла и правого угла; и
- кодируют с помощью контекстно-адаптивного двоичного энтропийного кодирования бит в битовом потоке на основе выбранного контекста, при этом указанный кодированный бит указывает, к какому из двух полуинтервалов принадлежит координата точки.
Согласно второму аспекту настоящей заявки предложен способ декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, при этом способ содержит режим азимутального кодирования, обеспечивающий серию битов для декодирования координаты точки облака точек, причем способ включает этапы, на которых:
- разделяют родительский интервал, которому принадлежит координата точки, на левый полуинтервал и правый полуинтервал;
- интерполируют левый угол, ассоциированный с левым полуинтервалом, и правый угол, ассоциированный с правым полуинтервалом, из по меньшей мере одного унаследованного угла, ассоциированного с родительским интервалом;
- выбирают контекст в зависимости от левого угла и правого угла; и
- декодируют с помощью контекстно-адаптивного двоичного энтропийного кодирования бит из битового потока на основе выбранного контекста, при этом указанный декодированный бит указывает, к какому из двух полуинтервалов принадлежит координата точки.
Согласно одному примерному варианту выполнения левый угол интерполируют путем сложения первого угла со взвешенной разностью второго и третьего углов, а правый угол интерполируют путем сложения четвертого угла со взвешенной разностью пятого угла и шестого угла.
Согласно одному примерному варианту выполнения первый, второй, третий, четвертый, пятый и шестой углы являются унаследованными углами, ассоциированными с родительским интервалом.
Согласно одному примерному варианту выполнения первый, третий и четвертый углы равны одному унаследованному углу, ассоциированному с родительским интервалом, а второй, четвертый и пятый углы равны другому унаследованному углу, ассоциированному со средней точкой родительского интервала, а угол, ассоциированный со средней точкой или левого, или правого полуинтервала, вычисляют путем выполнения функции арктангенса.
Согласно одному примерному варианту выполнения первый, третий и пятый углы равны одному унаследованному углу, а второй, четвертый и шестой углы равны другому унаследованному углу, равному верхней границе родительского интервала, и, или угол, ассоциированный с верхней границей левого полуинтервала, или угол, ассоциированный с нижней границей правого полуинтервала, вычисляют путем выполнения функции арктангенса.
Согласно одному примерному варианту выполнения угол, ассоциированный с верхней границей левого полуинтервала, или угол, ассоциированный с нижней границей правого полуинтервала, равен унаследованному углу, ассоциированному со средней точкой родительского интервала.
Согласно одному примерному варианту угол, ассоциированный с верхней границей левого полуинтервала, или угол, ассоциированный с нижней границей правого полуинтервала, для кодирования первого бита вычисляют с помощью арктангенса, а угол, ассоциированный с верхней границей левого полуинтервала, или угол, ассоциированный с нижней границей правого полуинтервала, для кодирования последующих битов равен унаследованному углу, ассоциированному со средней точкой родительского интервала.
Согласно одному примерному варианту выполнения унаследованный угол, ассоциированный со средней точкой родительского интервала, является интерполяцией от двух унаследованных углов и является ассоциированным с родительским интервалом.
Согласно одному примерному варианту выполнения унаследованный угол, ассоциированный со средней точкой родительского интервала, вычисляют путем выполнения функции арктангенса, при этом размер родительского интервала больше или равен определенному порогу, или иным образом интерполируют из двух унаследованных углов, ассоциированных с родительским интервалом.
Согласно третьему аспекту настоящей заявки предоставлено устройство кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект. Устройство содержит один или несколько процессоров, выполненных с возможностью выполнения способа согласно первому аспекту настоящей заявки.
Согласно четвертому аспекту настоящей заявки предоставлено устройство декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект. Устройство содержит один или несколько процессоров, выполненных с возможностью выполнения способа согласно второму аспекту настоящей заявки.
Согласно пятому аспекту настоящей заявки предоставлен компьютерный программный продукт, включающий инструкции, которые, когда программа выполняется одним или более процессорами, заставляют один или более процессоров выполнять способ кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект, согласно первому аспекту настоящей заявки.
Согласно шестому аспекту настоящей заявки предоставлен долговременный носитель информации, содержащий инструкции программного кода для выполнения способа кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект согласно первому аспекту настоящей заявки.
Согласно седьмому аспекту настоящей заявки предоставлен компьютерный программный продукт, включающий инструкции, которые, когда программа выполняется одним или более процессорами, заставляют один или более процессоров выполнять способ декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, согласно второму аспекту настоящей заявки.
Согласно восьмому аспекту настоящей заявки предоставлен долговременный носитель информации, содержащий инструкции программного кода для выполнения способа декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, при этом способ содержит режим азимутального кодирования, обеспечивающий последовательность битов для декодирования координаты точки облака точек согласно второму аспекту настоящей заявки.
Конкретная природа по меньшей мере одного из примерных вариантов выполнения, а также другие объекты, преимущества, особенности и использования указанных по меньшей мере одного из примерных вариантов выполнения станут очевидными из следующего описания примеров, взятых в сочетании с сопровождающими чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Теперь в качестве примера будут сделаны ссылки на сопровождающие чертежи, на которых показаны примерные варианты выполнения настоящей заявки и на которых:
Фиг. 1 иллюстрирует блок-схему этапов способа кодирования координаты x точки с использованием режима азимутального кодирования в случае, когда направление азимутального кодирования проходит вдоль оси x в соответствии с предшествующим уровнем техники.
Фиг. 2 иллюстрирует определение интервала вдоль направления азимутального кодирования в соответствии с предшествующим уровнем техники;
Фиг. 3 иллюстрирует обновление интервала режима азимутального кодирования по Фиг. 1, когда одну координату точки прогнозируют как принадлежащую левому полуинтервалу в соответствии с предшествующим уровнем техники;
Фиг. 4 иллюстрирует обновление интервала x, когда бит bd указывает на то, что xP находится в пределах правого полуинтервала в соответствии с предшествующим уровнем техники;
Фиг. 5 иллюстрирует один примерный вариант выполнения определения двух углов и в соответствии с предшествующим уровнем техники;
Фиг. 6 иллюстрирует один примерный вариант выполнения расчета двух углов и в соответствии с предшествующим уровнем техники;
Фиг. 7 иллюстрирует недостатки примерного варианта выполнения по Фиг. 6 для расчета двух углов и в соответствии с предшествующим уровнем техники;
Фиг. 8 иллюстрирует блок-схему этапов способа кодирования координаты x точки с использованием режима азимутального кодирования в случае, когда направление азимутального кодирования проходит вдоль оси x в соответствии с по меньшей мере одним примерным вариантом выполнения;
Фиг. 9 иллюстрирует один примерный вариант интерполяции двух углов и в соответствии с по меньшей мере одним примерным вариантом выполнения;
Фиг. 10 иллюстрирует один примерный вариант интерполяции двух углов и в соответствии с по меньшей мере одним примерным вариантом выполнения;
Фиг. 11 иллюстрирует примерный вариант примерного выполнения согласно Фиг. 10 для интерполяции двух углов и в соответствии с по меньшей мере одним примерным вариантом выполнения;
Фиг. 12 иллюстрирует примерный вариант выполнения для расчета середины интервала;
Фиг. 13 иллюстрирует блок-схему этапов способа 300 декодирования координаты x точки с использованием режима азимутального кодирования в случае, когда направление азимутального кодирования проходит вдоль оси x в соответствии с предшествующим уровнем техники; и
Фиг. 14 иллюстрирует принципиальную блок-схему одного примера системы, в которой реализованы различные аспекты и примерные варианты выполнения.
Для обозначения подобных компонентов на разных фигурах могли использоваться сходные ссылочные позиции.
ОПИСАНИЕ ПРИМЕРНЫХ ВАРИАНТОВ ВЫПОЛНЕНИЯ
По меньшей мере один из примерных вариантов выполнения изобретения более полно описан далее со ссылкой на сопровождающие фигуры, на которых проиллюстрированы примеры по меньшей мере одного из примерных вариантов выполнения. Однако примерный вариант выполнения может быть воплощен во многих альтернативных формах и не должен рассматриваться как ограниченный примерами, изложенными в настоящем документе. Соответственно, следует понимать, что нет намерения ограничить примерные варианты выполнения особыми раскрытыми формами. Напротив, раскрытие предназначено для охвата всех модификаций, эквивалентов и альтернатив, попадающих в суть и объем настоящей заявки.
Когда фигура представлена в виде блок-схемы, следует понимать, что она также предоставляет блок-схему соответствующего устройства. Аналогично, когда фигура представлена в виде блок-схемы, следует понимать, что она также предоставляет блок-схему соответствующего способа/процесса.
По меньшей мере один из аспектов в целом относится к кодированию и декодированию облака точек, а по меньшей мере один другой аспект в целом относится к передаче сгенерированного или закодированного битового потока.
Кроме того, настоящие аспекты не ограничиваются стандартами MPEG, такими как MPEG-I часть 5 или часть 9, которые относятся к сжатию облаков точек, и могут быть применены, например, к другим стандартам и рекомендациям, как существовавшим ранее, так и будущим, а также к расширениям любых таких стандартов и рекомендаций (включая MPEG-I часть 5 и часть 9). Если не указано иное или технически не исключено, аспекты, описанные в настоящей заявке, могут быть использованы по отдельности или в комбинации.
Настоящее изобретение относится к области технологии кодирования и декодирования и направлено на обеспечение технического решения по кодированию/декодированию данных облака точек. Поскольку облако точек представляет собой набор массовых данных, для хранения облака точек может потребоваться большой объем памяти, также невозможно передать облако точек непосредственно на сетевом уровне без его сжатия, поэтому требуется сжимать облако точек. Таким образом, настоящее изобретение может быть использовано во многих сценариях применения, поскольку облако точек все более широко используется в автономной навигации, инспекции в реальном времени, сервисе географической информации, охране культурного наследия/зданий, общении и взаимодействии с 3D-погружением и т.д.
Настоящее изобретение, в частности, относится к режиму азимутального кодирования, который использует угловую интерполяцию для определения углов и на основе смещений и унаследованных углов, ассоциированных с родительским интервалом, используемым для кодирования предыдущего бита. Режим азимутального кодирования, раскрытый в настоящем раскрытии, может быть использован в способе кодирования/декодирования облака точек для повышения эффективности сжатия при сохранении приемлемой сложности.
Фиг. 8 иллюстрирует блок-схему этапов способа 200 кодирования координаты x точки с использованием режима азимутального кодирования в случае, когда направление азимутального кодирования проходит вдоль оси x в соответствии с по меньшей мере одним примерным вариантом выполнения.
Способ 200 представляет собой усовершенствование способа 100 по Фиг. 1. Примерную точку P выбирают в текущем (листовом) узле дерева занятости (этап 101). Положение точки вдоль выбранного направления азимутального кодирования представлено битами bd, каждый из которых представляет положение xP в интервале x вдоль оси x. В дальнейшем выбранное направление азимутального кодирования осуществляют вдоль оси x, но эквивалентный способ 200 может быть выведен, если направление азимутального кодирования вдоль оси y, путем замены координаты x, оси x на координату y и ось y соответственно и в обратном порядке. Другую координату точки (здесь yP) кодируют вдоль противоположного направления (здесь оси y) (этап 102). Для точки P определяют азимутальный угол прогнозирования (этап 103). Интервал x инициализируют вдоль оси x (этап 104).
На этапе 201 получают угол текущего узла . Угол может быть уже известен и получен из памяти или вычислен:
где - заданный параметр IDCM. Например, параметром может быть наименьшее значение координаты x, ассоциированное с кубом, связанным с текущим узлом. Затем угол ассоциируют с нижней границей родительского интервала.
На этапе 202 родительский интервал разделяют на два полуинтервала: левый полуинтервал и правый полуинтервал. Родительский интервал представляет собой либо интервал x, инициализированный на этапе 104, либо интервал x, используемый для кодирования предыдущего бита bd-1.
На этапе 203, левый угол , ассоциированный с левым полуинтервалом, и правый угол , ассоциированный с правым полуинтервалом, интерполируют из по меньшей мере одного унаследованного угла, ассоциированного с родительским интервалом.
На этапе 106 выбирают контекст на основе угла прогнозирования и двух углов и .
На этапе 107 оставшийся бит bd высшего порядка для xP кодируют с помощью контекстно-адаптивного двоичного энтропийного кодирования в битовый поток B с использованием выбранного контекста. Этот бит bd указывает, что xP находится либо в левом полуинтервале (bd=0), либо в правом полуинтервале (bd=1).
В соответствии с примерным вариантом выполнения, контекстно-адаптивное двоичное энтропийное кодирование представляет собой контекстно-адаптивное двоичное арифметическое кодирование (CABAC).
На этапе 108 обновляют родительский интервал как полуинтервал, которому принадлежит xP (как указано кодированным битом). Если кодированный бит bd равен 0, это указывает, что xP находится в левом полуинтервале, а родительский интервал обновляют как левый полуинтервал. Если кодированный бит bd равен 1, это указывает, что xP находится в правом полуинтервале, а родительский интервал обновляют как правый полуинтервал.
Далее способ проверяет, завершено ли кодирование xP или нет.
Если кодирование xP завершено, то на этапе 109 оставшуюся координату zP кодируют в битовый поток B.
Если кодирование xP не завершено, следует перейти к этапу 202 для кодирования следующего бита bd+1, представляющего xP.
Согласно одному примерному варианту выполнения этапа 203 левый угол интерполируют путем сложения первого угла ( со взвешенной разностью второго угла ( и третьего угла (, а правый угол () интерполируют путем сложения четвертого угла ( со взвешенной разностью пятого угла( и шестого угла (.
Такая интерполяция может быть задана в виде уравнения
где указывает на размер интервала, ограниченного углами (), а и представляют собой параметры способа, и по меньшей мере один из углов является унаследованным углом, ассоциированным с родительским интервалом, использованным для кодирования предыдущего бита bd-1 (предыдущая итерация, на глубине d-1). Интервал x, используемый на глубине d для кодирования бита bd, содержится в родительском интервале.
Углы и не могут систематически указывать на середины левого и правого полуинтервалов. Это позволяет гибко подходить к выбору углов и за счет свободной настройки значений параметров и
Согласно одному примерному варианту выполнения этапа 203, проиллюстрированному на Фиг. 9, все углыв уравнении (2) представляют собой унаследованные углы, ассоциированные с родительским интервалом: , и . Затем углы и интерполируют с помощью уравнения
где углы и представляют собой унаследованные углы, ассоциированные с родительским интервалом.
Для кодирования первого бита bd=1 (первая итерация) унаследованный угол представляет собой угол , полученный на этапе 201, а унаследованный угол ассоциируют со средней точкой начального интервала x (этап 104).
Для кодирования следующего бита bd (последующие итерации) унаследованные углы и ассоциируют с родительским интервалом. Пунктирная линия на Фиг. 9 иллюстрирует наследственный канал связи.
Для каждой глубины d угол можно вычислить с помощью функции арктангенса.
Для кодирования первого бита bd=1 (первая итерация) родительский угол вычисляют с помощью уравнения:
где представляет собой половину размера начального интервала x (этап 104), а представляет собой значение нижней границы начального интервала x (этап 104).
Для кодирования следующих битов bd (последующие итерации) родительский угол вычисляют с помощью функции арктангенса:
где представляет собой половину размера sd-1 родительского интервала, а представляет собой значение нижней границы родительского интервала.
Этот примерный вариант требует выполнения одной функции арктангенса для кодирования каждого бита bd (уравнения 4 или 5). Таким образом, это предоставляет преимущества, поскольку выполняют то же количество функций арктангенса, что и в предшествующем уровне техники, сохраняя при этом высокую производительность кодирования и гибкость в выборе углов и .
Согласно другому примерному варианту выполнения этапа 203, проиллюстрированному на Фиг. 10, все углыв уравнении (2) представляют собой унаследованные углы, ассоциированные с родительским интервалом: , и . Углы и интерполируют с помощью уравнения:
где углы и представляют собой унаследованные углы, ассоциированные с родительским интервалом.
Для кодирования первого бита bd=1 (первая итерация) унаследованный угол представляет собой угол , полученный на этапе 201, а унаследованный угол представляет собой угол, ассоциированный с верхней границей начального интервала x.
Для кодирования следующего бита bd (последующие итерации) унаследованные углы и ассоциируют с родительским интервалом. Пунктирная линия на Фиг. 10 иллюстрирует наследственный канал связи.
На заданной глубине d вычисляют либо угол , ассоциированный с верхней границей левого полуинтервала, либо угол , ассоциированный с нижней границей правого полуинтервала, с помощью выполнения функции арктангенса.
Для кодирования первого бита bd=1 (первая итерация) угол вычисляют с помощью уравнения:
где представляет собой размер начального интервала x (этап 104), а представляет собой значение нижней границы начального интервала x (этап 104).
Если bd-1=0, то левый полуинтервал представляет собой родительский интервал для следующей глубины d (следующая итерация), а затем вычисляют угол с помощью функции арктангенса.
Для кодирования следующего бита bd (последующая итерация) угол вычисляют с помощью функции арктангенса:
где представляет собой размер интервала x на глубине d-1, а представляет собой значение нижней границы интервала x на глубине d-1.
Если bd-1=1, то правый полуинтервал представляет собой родительский интервал для следующей глубины d, а затем вычисляют угол с помощью функции арктангенса.
Для кодирования последующего бита bd (последующая итерация) угол вычисляют с помощью уравнения:
где представляет собой размер интервала x на глубине d-1, а представляет собой значение нижней границы интервала x на глубине d-1.
Этот примерный вариант требует выполнения одной функции арктангенса для кодирования каждого бита bd (уравнения 7-10). Таким образом, это предоставляет преимущества, поскольку выполняют то же количество функций арктангенса, что и в предшествующем уровне техники, сохраняя при этом высокую производительность кодирования и гибкость в выборе углов и .
В первом варианте примерного варианта выполнения по Фиг. 10, проиллюстрированном на Фиг. 11, угол или угол равен унаследованному углу , ассоциированному со средней точкой родительского интервала.
Первый вариант обеспечивает меньшую сложность, поскольку он не требует выполнения функции арктангенса для кодирования каждого бита bd, предполагая, что определен без вызова функции арктангенса. Кроме того, это сохраняет высокую производительность кодирования и гибкость в выборе углов и .
Во втором варианте примерного варианта выполнения Фиг. 10 угол и угол для кодирования первого бита bd=1 вычисляют по уравнению 7 или 9, а углы или угол для кодирования последующих битов bd равен унаследованному углу , ассоциированному со средней точкой родительского интервала.
Этот вариант требует только двух выполнений функции арктангенса для кодирования последовательности битов, что снижает сложность способа, а значит, и вычислительные ресурсы для реализации режима азимутального кодирования при сохранении высокой производительности кодирования (высокой точности интерполяции) и гибкости в выборе углов и .
В варианте указанного первого или второго варианта унаследованный угол получают путем интерполяции двух унаследованных углов и , ассоциированных с родительским интервалом:
При этом углы и представляют собой унаследованные углы, ассоциированные с родительским интервалом, как это объяснено выше в связи с Фиг. 9, 10 и 11.
Этот вариант не требует рекурсивного вызова функций арктангенса для выполнения кодирования последовательности битов, что снижает сложность способа, а значит, и вычислительные ресурсы для реализации режима азимутального кодирования при сохранении высокой производительности кодирования и гибкости в выборе углов и .
В другом варианте указанного первого или второго варианта унаследованный угол получают путем выполнения функции арктангенса (уравнение 4 или 5), когда размер родительского интервала превышает определенный порог, и интерполируют из двух унаследованных углов и согласно уравнению (11) в противном случае, когда размер родительского интервала ниже определенного порога.
Этот вариант обеспечивает сохранение высокой точности в узлах, имеющих важные размеры, для которых интерполяция уравнения (11) обеспечила бы слишком неточные результаты и тем самым повредила бы эффективности сжатия.
Альтернативно, унаследованный угол получают с помощью выполнения функции арктангенса (уравнение 4 или 5), когда абсолютное значение разности между углами и больше определенного порога, и интерполируют из двух унаследованных углов и согласно уравнению (11) в противном случае.
Этот вариант предпочтителен, поскольку сохраняет точность интерполяции, и таким образом, производительность сжатия, при этом обеспечивая меньшую сложность благодаря интерполяции после того, как размер интервала станет достаточно малым.
Согласно примерному варианту выполнения этапа 203, параметр определяют как разность между средним положением центра левого полуинтервала и смещением , а параметр определяют как сумму среднего положения центра правого полуинтервала и смещения :
Основная идея для получения хорошего выбора контекста заключается в получении углов и , расположенных близко к центру их соответствующих полуинтервалов. Однако было замечено, что оптимальные характеристики сжатия получают, когда углы и не указывают точно на центры их полуинтервалов.
Например, середина левого полуинтервала не является прямой ( из-за дискретного расположения точек в этом левом полуинтервале. Вместо этого середину левого полуинтервала определяют как среднее положение всех потенциальных точек, принадлежащих левому полуинтервалу, как показано на Фиг. 12.
Учитывая полуинтервал длины , потенциальные точки располагаются на позициях 0, 1, ..., от нижней границы левого полуинтервала. После этого среднее положение центра левого полуинтервала offsetright,mid задают в виде формулы:
offsetright,mid = (0 + 1 + … + + ) / .
Теперь, используя формулу арифметической прогрессии, получают
offsetright,mid = () / 2 = () / 2 = - 1/2
Было замечено, что для достижения большей эффективности сжатия введение второго смещения в качестве уточнения среднего положения центра левого полуинтервала приводит к более эффективному выбору контекстов и получению небольшого дополнительного улучшения сжатия. Основной эффект второго смещения заключается в небольшом смещении левого угла к нижней границе левого полуинтервала, а правого угла - к верхней границе правого полуинтервала.
Такие же рассуждения относятся и к параметру , ассоциированному с правым полуинтервалом.
Примерное значение равно . Также может зависеть от глубины d таким образом, что может быть равно 2 для последней глубины (т.е. для кодирования последнего бита bd), может быть равно 1 для предпоследней глубины и может быть равно 0 для остальных глубин.
В способах 200 и 300 выполняют несколько операций деления. Например,
- offsetleft,mid = - ½
- сама интерполяция как деление на или
-
Эти операции деления могут быть проблематичными для практической реализации, но их практически можно заменить операциями сдвига >>, в частности, в рамках текущего программного обеспечения G_PCC TMC13. Эта замена выполнима, поскольку размер узлов равен степени двойки, так что длины интервалов также равны степени двойки.
Уравнение (2) принимает вид:
где представляет собой log2 длины интервала, такого, что рекурсивно получают с помощью уравнения
Значение вычисляют с помощью уравнения
Фиг. 13 иллюстрирует блок-схему этапов способа 300 декодирования координаты x точки с использованием режима азимутального кодирования в случае, когда направление азимутального кодирования проходит вдоль оси x в соответствии с предшествующим уровнем техники.
В дальнейшем выбранное направление азимутального кодирования осуществляют вдоль оси x, но эквивалентный способ 300 может быть выведен, если направление азимутального кодирования вдоль оси y, путем замены координаты x, оси x на координату y и ось y соответственно и в обратном порядке.
Направление азимутального кодирования определяют по координатам x и y (, ), представляющим текущий (листовой) узел, к которому применяют IDCM. Альтернативно, направление азимутального кодирования может быть декодировано из битового потока B.
На этапе 301 координату точки (здесь yP) декодируют вдоль противоположного направления (здесь оси y) из битового потока B.
На этапе 103 определяют азимутальный угол прогнозирования для точки P. Инициализируют интервал x вдоль оси x (этап 104). Используют азимутальный угол (ближайшей) уже декодированной точки, и с помощью декодера определяют множество элементарного азимутального смещения. Альтернативно, множество декодируют из битового потока B.
На этапе 104 инициализируют родительский интервал (здесь интервал x) вдоль направления азимутального кодирования (здесь ось x).
На этапе 201 по уравнению (1) получают угол текущего узла . Координата yP была декодирована из битового потока, а является известным параметром IDCM.
На этапе 202 родительский интервал разделяют на два полуинтервала: левый полуинтервал и правый полуинтервал. Родительский интервал представляет собой либо интервал x, инициализированный на этапе 104, либо интервал x, используемый для декодирования предыдущего бита bd-1.
На этапе 203, левый угол , ассоциированный с левым полуинтервалом, и правый угол , ассоциированный с правым полуинтервалом, интерполируют из по меньшей мере одного унаследованного угла, ассоциированного с родительским интервалом.
На этапе 106 выбирают контекст на основе угла прогнозирования и двух углов и .
На этапе 302 оставшийся бит bd высшего порядка для xP декодируют с помощью контекстно-адаптивного двоичного энтропийного кодирования из битового потока B с использованием выбранного контекста. Этот бит bd указывает, что xP находится либо в левом полуинтервале (bd=0), либо в правом полуинтервале (bd=1).
В соответствии с примерным вариантом выполнения контекстно-адаптивное двоичное энтропийное декодирование представляет собой контекстно-адаптивное двоичное арифметическое кодирование (CABAC).
На этапе 108 обновляют родительский интервал как полуинтервал, которому принадлежит xP (как указано декодированным битом).
Далее способ проверяет, завершено ли декодирование координаты xP или нет.
Если декодирование xP завершено, то на этапе 303 оставшуюся координату zP декодируют из битового потока B.
Если декодирование xP не завершено, следует перейти к этапу 202 для декодирования следующего бита bd+1 xP.
Примерные варианты выполнения и варианты способа 200 применимы к способу 300.
Настоящий способ кодирования/декодирования может быть использован для кодирования/декодирования облака точек, которое может быть использовано для различных целей, особенно для кодирования/декодирования координат точки облака точек, что повышает эффективность сжатия при сохранении приемлемой сложности.
Фиг. 14 показывает принципиальную блок-схему, иллюстрирующую один пример системы, в которой реализованы различные аспекты и примерные варианты выполнения.
Система 400 может быть реализована в виде одного или нескольких устройств, включающих различные компоненты, описанные ниже. В различных вариантах выполнения система 400 может быть выполнена с возможностью реализации одного или нескольких аспектов, описанных в настоящей заявке.
Примеры оборудования, которое может формировать всю или часть системы 400, включают персональные компьютеры, ноутбуки, смартфоны, планшетные компьютеры, цифровые мультимедийные телевизионные приставки, цифровые телевизионные приемники, персональные системы записи видео, соединенные бытовые приборы, соединенные транспортные средства и ассоциированные с ними системы обработки, наголовные устройства отображения (HMD, (прозрачные очки), проекторы (beamers), «caves» (система, включающая множество дисплеев), серверы, кодеры видео, декодеры видео, пост-процессоры, обрабатывающие вывод декодера видео, пре-процессоры, обеспечивающие ввод в кодер видео, веб-серверы, телевизионные приставки и любое другое устройство для обработки облака точек, видео или изображения или другие коммуникационные устройства. Элементы системы 400, отдельно или в комбинации, могут быть реализованы в одной интегральной схеме (ИС), множестве ИС и/или на дискретных компонентах. Например, по меньшей мере в одном варианте выполнения системы 400 элементы обработки и кодера/декодера могут быть распределены по нескольким ИС и/или дискретным компонентам. В различных вариантах выполнения система 400 может быть коммуникационно связана с другими подобными системами или с другими электронными устройствами, например, через коммуникационную шину или через специализированные порты ввода и/или вывода.
Система 400 может включать по меньшей мере один процессор 410, выполненный с возможностью выполнения загруженных в него инструкций для реализации, например, различных аспектов, описанных в настоящей заявке. Процессор 410 может включать встроенную память, интерфейс ввода-вывода и другие схемы, известные в данной области техники. Система 400 может включать по меньшей мере одну память 420 (например, энергозависимое устройство памяти и/или энергонезависимое устройство памяти). Система 400 может включать устройство хранения 440, которое может включать энергонезависимую и/или энергозависимую память, включая, но не ограничиваясь этим, электрически стираемую программируемую постоянную память (EEPROM), постоянную память (ROM), программируемую постоянную память (PROM), память с произвольным доступом (RAM), динамическую память с произвольным доступом (DRAM), статическую память с произвольным доступом (SRAM), флэш-память, накопитель на магнитных дисках и/или накопитель на оптических дисках. Устройство хранения 440 может включать внутреннее устройство хранения, присоединенное устройство хранения и/или устройство хранения, доступное по сети, в качестве неограничивающих примеров.
Система 400 может включать модуль кодера/декодера 430, выполненный, например, с возможностью обработки данных для обеспечения кодированных/декодированных геометрических данных облака точек, при этом модуль кодера/декодера 430 может включать собственный процессор и память. Модуль кодера/декодера 430 может представлять собой модуль(и), который(ые) может(ут) быть включен(ы) в устройство для выполнения функций кодирования и/или декодирования. Как известно, устройство может включать один или оба модуля кодирования и декодирования. Кроме того, модуль кодирования/декодирования 430 может быть реализован как отдельный элемент системы 400 или может быть встроен в процессор 410 как комбинация аппаратных средств и программного обеспечения, как известно специалистам в данной области техники.
Программный код, загружаемый в процессор 410 или кодер/декодер 430 для выполнения различных аспектов, описанных в настоящей заявке, может храниться в устройстве хранения 440 и впоследствии загружаться в память 420 для исполнения процессором 410. В соответствии с различными вариантами выполнения, один или несколько процессоров 410, память 420, устройство хранения 440 и модуль кодирования/декодирования 430 могут хранить один или несколько различных элементов во время выполнения процессов, описанных в настоящей заявке. Такие хранимые элементы могут включать, но не ограничиваться, кадр облака точек, кодированные/декодированные геометрические/атрибутные видео/изображения или фрагменты кодированных/декодированных геометрических/атрибутных видео/изображений, битовый поток, матрицы, переменные, промежуточные или конечные результаты обработки уравнений, формул, операций и операционной логики.
В некоторых вариантах выполнения память внутри процессора 410 и/или модуля кодера/декодера 430 может быть использована для хранения инструкций и обеспечения рабочей памяти для обработки, которая может быть выполнена во время кодирования или декодирования.
Однако в других вариантах выполнения память, внешняя по отношению к устройству обработки (например, устройство обработки может быть либо процессором 410, либо модулем 430 кодера/декодера) может использоваться для одной или более из этих функций. Внешняя память может представлять собой память 420 и/или устройство хранения 440, например, динамическую энергозависимую память и/или энергонезависимую флэш-память. В некоторых вариантах выполнения для хранения операционной системы телевизора может быть использована внешняя энергонезависимая флэш-память. По меньшей мере в одном варианте выполнения, быстрая внешняя динамическая энергозависимая память, такая как RAM, может быть использована в качестве рабочей памяти для операций кодирования и декодирования видео, таких как для MPEG-2 часть 2 (также известно как рекомендация Н.261 ITU-T и ISO/IEC 13818-2, также известно как MPEG-2 Video), HEVC (Высокоэффективное кодирование видео), VVC (Универсальное кодирование видео) или MPEG-I часть 5 или часть 9.
Ввод в элементы системы 400 может осуществляться с помощью различных устройств ввода, как показано в блоке 490. Такие устройства ввода включают, но не ограничиваются ими, (i) RF-часть, которая может принимать RF-сигнал, передаваемый, например, по воздуху вещательной станцией, (ii) составной терминал ввода, (iii) USB-терминал ввода и/или (iv) HDMI-терминал ввода.
В различных вариантах выполнения устройства ввода блока 490 могут иметь ассоциированные соответствующие элементы обработки ввода, как известно в данной области техники. Например, RF-часть может быть ассоциирована с элементами, необходимыми для (i) выбора желаемой частоты (также упоминается как выбор сигнала или ограничение сигнала до полосы частот), (ii) понижающего преобразования выбранного сигнала, (iii) повторного ограничения полосы до более узкой полосы частот для выбора (например) полосы частот сигнала, которая в некоторых вариантах выполнения может упоминаться как канал, (iv) демодуляции преобразованного с понижением и ограничением полосы сигнала, (v) выполнения коррекции ошибок и (vi) демультиплексирования для выбора требуемого потока пакетов данных. RF-часть в различных вариантах выполнения может включать один или более элементов для выполнения этих функций, например селекторы частоты, селекторы сигнала, ограничители полосы, селекторы канала, фильтры, понижающие преобразователи, демодуляторы, корректоры ошибок и демультиплексоры. RF-часть может включать тюнер, который выполняет различные из этих функций, включая, например, понижающее преобразование принятого сигнала на более низкую частоту (например, промежуточную частоту или частоту, близкую к базовой полосе) или в базовую полосу.
В одном варианте выполнения с телевизионной приставкой RF-часть и ассоциированный с ней элемент обработки ввода могут принимать RF-сигнал, передаваемый по проводному (например, кабельному) носителю. Затем RF-часть может выполнять выбор частоты путем фильтрации, понижающего преобразования и повторной фильтрации до требуемой полосы частот.
Различные варианты выполнения переупорядочивают очередность описанных выше (и других) элементов, удаляют некоторые из этих элементов и/или добавляют некоторые элементы, выполняющие аналогичные или различные функции.
Добавление элементов может включать вставку элементов между существующими элементами, например, вставку усилителей и аналого-цифрового преобразователя. В различных вариантах выполнения, RF-часть может включать антенну.
Кроме того, USB- и/или HDMI-терминалы могут включать соответствующие процессоры интерфейса для соединения системы 400 с другими электронными устройствами через USB- и/или HDMI-соединения. Следует понимать, что различные аспекты обработки ввода, например, коррекции ошибок Рида-Соломона, могут быть реализованы, например, в отдельной ИС обработки ввода или в процессоре 410 по мере необходимости. Аналогично, аспекты обработки USB- или HDMI-интерфейса могут быть реализованы в отдельных ИС интерфейса или в процессоре 410 по мере необходимости. Демодулированный, скорректированный и демультиплексированный поток может быть предоставлен в различные элементы обработки, включая, например, процессор 410 и кодер/декодер 430, работающие в комбинации с элементами памяти и хранения для обработки потока данных, как это необходимо для представления на устройстве вывода.
Различные элементы системы 400 могут быть предоставлены в интегрированном корпусе. Внутри интегрированного корпуса различные элементы могут быть соединены между собой и могут передавать данные между собой с использованием подходящих соединительных устройств 490, например внутренней шины, известной в данной области техники, включая шину I2C, разводку и печатные платы.
Система 400 может включать интерфейс связи 450, который обеспечивает связь с другими устройствами по каналу связи 500. Интерфейс связи 450 может включать, но не ограничиваться, приемопередатчик, выполненный с возможностью передачи и приема данных по каналу связи 500. Интерфейс связи 450 может включать, но не ограничиваться, модем или сетевую карту, а канал связи 500 может быть реализован, например, в проводной и/или беспроводной среде.
Данные могут передаваться в потоковом режиме в систему 400, в различных вариантах выполнения, используя сеть Wi-Fi, такую как IEEE 802.11. Сигнал Wi-Fi этих вариантов выполнения может приниматься по каналу связи 500 и интерфейсу связи 450, которые адаптированы для связи Wi-Fi. Канал связи 500 этих вариантов выполнения обычно может быть соединен с точкой доступа или маршрутизатором, который обеспечивает доступ к внешним сетям, включая Интернет, для обеспечения работы потоковых приложений и другой связи OTT.
Другие варианты выполнения могут предоставлять потоковые данные в систему 400 с использованием телевизионной приставки, которая доставляет данные по HDMI-соединению блока ввода 490.
Другие варианты выполнения могут предоставлять потоковые данные в систему 400 с использованием RF-соединения блока ввода 490.
Потоковые данные могут использоваться как способ сигнализировать информацию, используемую системой 400. Информация сигнализации может содержать битовый поток B и/или такую информацию, как количество точек облака точек, кодированный бит (bd), указывающий, к какому из двух полуинтервалов относится координата точки, направление азимутального кодирования, координаты точки, множество n элементарного азимутального сдвига, элементарный азимутальный сдвиг, параметр .
Следует понимать, что сигнализация может быть выполнена множеством способов. Например, один или более синтаксических элементов, флагов и т.д. могут использоваться, чтобы сигнализировать информацию на соответствующий декодер в различных вариантах выполнения.
Система 400 может выдавать выходной сигнал на различные устройства вывода, включая дисплей 600, громкоговорители 700 и другие периферийные устройства 800. Другие периферийные устройства 800 могут включать, в различных примерах вариантов выполнения, один или более из автономного DVR, проигрывателя дисков, стереосистемы, системы освещения и других устройств, которые обеспечивают функцию на основе вывода системы 400.
В различных вариантах выполнения управляющие сигналы могут передаваться между системой 400 и дисплеем 600, громкоговорителями 700 или другими периферийными устройствами 800, используя сигнализацию, такую как AV.Link (Аудио/видео линия), CEC (Управление бытовыми электронными приборами) или другие протоколы связи, которые обеспечивают управление от устройства к устройству с вмешательством пользователя или без него.
Устройства вывода могут быть коммуникационно связаны с системой 400 по выделенным соединениям через соответствующие интерфейсы 460, 470 и 480.
Альтернативно, устройства вывода могут быть соединены с системой 400 с использованием канала связи 500 через интерфейс связи 450. Дисплей 600 и громкоговорители 700 могут быть интегрированы в один блок с другими компонентами системы 400 в электронном устройстве, таком как, например, телевизор.
В различных вариантах выполнения интерфейс 460 дисплея может включать драйвер дисплея, такой как, например, микросхема контроллера синхронизации (T Con).
Дисплей 600 и громкоговоритель 700 могут альтернативно быть отдельными от одного или нескольких других компонентов, например, если RF-часть ввода 490 является частью отдельной телевизионной приставки. В различных вариантах выполнения, в которых дисплей 600 и громкоговорители 700 могут быть внешними компонентами, выходной сигнал может предоставляться через выделенные выходные соединения, включая, например, HDMI-порты, USB-порты или COMP-выводы.
На Фиг. 1-14, здесь описаны различные способы, каждый из которых включает один или более этапов или действий для реализации описанного способа. Если только конкретный порядок этапов или действий не требуется для надлежащей работы способа, порядок и/или использование конкретных этапов и/или действий могут быть изменены или объединены.
Некоторые примеры описаны в отношении блок-схем и операционных блок-схем. Каждый блок представляет схемный элемент, модуль или участок кода, который включает одну или более исполняемых инструкций для реализации указанной логической функции(й). Следует также отметить, что в других реализациях, функция(и), указанная в блоках, может выполняться не в указанном порядке. Например, два блока, показанные последовательно, фактически могут исполняться по существу одновременно, или блоки могут иногда исполняться в обратном порядке в зависимости от используемых функциональных возможностей.
Реализации и аспекты, описанные здесь, могут быть реализованы, например, в виде способа или процесса, устройства, компьютерной программы, потока данных, битового потока или сигнала. Даже если обсуждается только в контексте одной формы реализации (например, обсуждается только как способ), реализация обсуждаемых признаков также может быть осуществлена в других формах (например, как устройство или компьютерная программа).
Способы могут быть реализованы, например, в процессоре, который относится к устройствам обработки в общем, включая, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Процессоры также включают устройства связи.
Кроме того, способы могут быть реализованы инструкциями, выполняемыми процессором, и такие инструкции (и/или значения данных, созданные реализацией) могут храниться на машиночитаемом носителе хранения. Машиночитаемый носитель хранения может принимать форму машиночитаемого программного продукта, реализованного на одном или нескольких машиночитаемых носителях и имеющего машиночитаемый программный код, реализованный на нем, который может исполняться компьютером. Машиночитаемый носитель хранения, используемый здесь, может рассматриваться как долговременный (энергонезависимый) носитель хранения с присущей ему способностью сохранять в себе информацию, а также присущей ему способностью предоставлять извлечение из него информации. Машиночитаемый носитель хранения может представлять собой, например, но не ограничиваясь, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, устройство или прибор или любую подходящую комбинацию вышеупомянутого. Следует понимать, что следующее, хотя и обеспечивает более конкретные примеры машиночитаемых носителей хранения, к которым могут быть применены настоящие варианты выполнения, является просто иллюстративным и не исчерпывающим перечнем, как легко понять специалисту в данной области техники: переносная компьютерная дискета; постоянная память (ROM); стираемая программируемая постоянная память (EPROM или флэш-память); переносная постоянная память на компакт-диске (CD-ROM); оптическое устройство хранения; магнитное устройство хранения или любая подходящая комбинация вышеупомянутого.
Инструкции могут формировать прикладную программу, материально воплощенную на машиночитаемом носителе.
Инструкции могут представлять собой, например, аппаратные средства, микропрограммное обеспечение, программное обеспечение или комбинацию. Инструкции могут быть, например, в операционной системе, отдельном приложении или их комбинации. Таким образом, процессор может быть охарактеризован, например, как устройство, выполненное с возможностью исполнения процесса, и устройство, которое включает машиночитаемый носитель (такой как устройство хранения), имеющий инструкции для выполнения процесса. Дополнительно, машиночитаемый носитель может хранить, в дополнение или вместо инструкций, значения данных, созданные реализацией.
Устройство может быть реализовано, например, в соответствующих аппаратных средствах, программном обеспечении и микропрограммном обеспечении. Примеры таких устройств включают персональные компьютеры, ноутбуки, смартфоны, планшетные компьютеры, цифровые мультимедийные телевизионные приставки, цифровые телевизионные приемники, персональные системы записи видео, соединенные домашние электронные приборы, наголовные устройства отображения (HMD, прозрачные очки), проекторы (beamers), «caves» (система, включающая множество дисплеев), серверы, кодеры видео, декодеры видео, пост-процессоры, обрабатывающие вывод из декодера видео, пре-процессоры, обеспечивающие ввод в кодер видео, web-серверы, телевизионные приставки и любое другое устройство для обработки облака точек, видео или изображения или другие коммуникационные устройства. Как должно быть ясно, оборудование может быть мобильным и даже установленным в подвижном транспортном средстве.
Компьютерное программное обеспечение может быть реализовано процессором 410 или аппаратными средствами, или комбинацией аппаратных средств и программного обеспечения. В качестве неограничивающего примера, варианты выполнения могут быть также реализованы одной или несколькими интегральными схемами. Память 420 может быть любого типа, соответствующего техническому окружению, и может быть реализована с использованием любой подходящей технологии хранения данных, такой как оптические устройства памяти, магнитные устройства памяти, устройства памяти на основе полупроводников, стационарная память и сменная память, в качестве неограничивающих примеров. Процессор 410 может быть любого типа, соответствующего техническому окружению, и может включать один или более микропроцессоров, компьютеров общего назначения, компьютеров специального назначения и процессоров на основе многоядерной архитектуры, в качестве неограничивающих примеров.
Как будет очевидно специалисту в данной области техники, реализации могут формировать множество сигналов, отформатированных для переноса информации, которая может быть, например, сохранена или передана. Информация может включать, например, инструкции для выполнения способа или данные, созданные одной из описанных реализаций. Например, сигнал может быть отформатирован для переноса битового потока описанного варианта выполнения. Такой сигнал может быть отформатирован, например, как электромагнитная волна (например, с использованием радиочастотной части спектра) или как сигнал базовой полосы. Форматирование может включать, например, кодирование потока данных и модуляцию носителя закодированным потоком данных. Информация, которая переносит сигнал, может представлять собой, например, аналоговую или цифровую информацию. Сигнал может передаваться по множеству различных проводных или беспроводных каналов связи, как известно. Сигнал может храниться на машиночитаемом носителе.
Используемая здесь терминология предназначена только для описания особых вариантов выполнения и не предназначена для ограничения. Как используется здесь, формы единственного числа могут включать также формы множественного числа, если контекст ясно не указывает иное. Следует также понимать, что термины «включает/содержит» и/или «включающий/содержащий» при использовании в этой спецификации, могут определять присутствие указанных, например, признаков, целых чисел, этапов, операций, элементов и/или компонентов, но не исключают присутствия или добавления одного или нескольких других признаков, целых чисел, этапов, операций, элементов, компонентов и/или их групп. Кроме того, когда элемент упоминается как «реагирующий» или «соединенный» с другим элементом, он может непосредственно реагировать на другой элемент или быть соединенным с другим элементом, или могут присутствовать промежуточные элементы. В отличие от этого, когда элемент упоминается как «непосредственно реагирующий» или «непосредственно соединенный» с другим элементом, промежуточные элементы отсутствуют.
Следует принимать во внимание, что использование любого из символов/терминов «/», «и/или» или «по меньшей мере одно из», например, в случае «А/В», «A и/или B» и «по меньшей мере одно из А и В», может быть предназначено для того, чтобы охватывать выбор только первой упомянутой опции (А) или выбор только второй упомянутой опции (В) или выбор обоих опций (A и В). В качестве дополнительного примера, в случаях «А, B и/или C» и «по меньшей мере одного из А, B и C», такая фраза предназначена, чтобы охватывать выбор только первой упомянутой опции (A) или выбор только второй упомянутой опции (В) или выбор только третьей упомянутой опции (C), или выбор только первой и второй упомянутых опций (A и B), или только выбор первой и третьей упомянутых опций (A и C), или только выбор второй и третьей упомянутых опций (B и C), или выбор всех трех упомянутых опций (A и B и C). Это может быть расширено, как это ясно специалисту в данной и смежных областях техники, на многие элементы, которые перечислены.
В настоящей заявке могут быть использованы различные числовые значения. Конкретные значения могут быть приведены с целью примера, и описанные аспекты не ограничиваются этими конкретными значениями.
Следует понимать, что, хотя термины первый, второй, и т.д. могут использоваться здесь для описания различных элементов, эти элементы не ограничиваются этими терминами. Эти термины используются только для различения одного элемента от другого. Например, первый элемент может быть назван вторым элементом, и, аналогично, второй элемент может быть назван первым элементом, не отступая от идей настоящей заявки. Не подразумевается никакого упорядочения между первым элементом и вторым элементом.
Ссылки на «один примерный вариант выполнения» или «вариант выполнения», или «одну реализацию», или «реализацию», а также другие их вариации, часто используются для указания того, что особый признак, структура, характеристика и т.д. (описанные в связи с вариантом выполнения/реализацией) включены в по меньшей мере один вариант выполнения/реализацию. Таким образом, появление фразы «в одном примерном варианте выполнения» или «в примерном варианте выполнения», или «в одной реализации», или «в реализации», а также любые другие вариации, появляющиеся в различных местах в этой заявке, не обязательно все ссылаются на один и тот же вариант выполнения.
Аналогично, ссылка здесь на «в соответствии с примерным вариантом выполнения/примером/реализацией» или «в примерном варианте выполнения/примере/реализации», а также другие их вариации часто используется для указания того, что особый признак, структура или характеристика (описанные в связи с примерным вариантом выполнения/примером/реализацией) могут быть включены по меньшей мере в один вариант примерный выполнения/пример/реализацию. Таким образом, появление выражения «в соответствии с примерным вариантом выполнения/примером/реализацией» или «в примерном варианте выполнения/примере/реализации» в различных местах в спецификации не обязательно все относятся к одному и тому же примерному варианту выполнения/примеру/реализации, и не являются отдельными или альтернативными примерными вариантами выполнения/ примерами/реализацией, обязательно взаимно исключающими другие примерные варианты выполнения/примеры/реализацию.
Ссылочные позиции, появляющиеся в формуле изобретения, представлены только в качестве иллюстрации и не должны ограничивать объем формулы изобретения. Хотя это и не описано явно, настоящие варианты выполнения/примеры и варианты могут использоваться в любой комбинации или подкомбинации.
Когда фигура представлена в виде блок-схемы, следует понимать, что она также предоставляет блок-схему соответствующего устройства. Аналогично, когда фигура представлена в виде блок-схемы, следует понимать, что она также предоставляет блок-схему соответствующего способа/процесса.
Хотя некоторые из схем включают стрелки на линиях связи для того, чтобы показать основное направление связи, должно быть понятно, что связь может происходить в противоположном направлении по отношению к показанным стрелкам.
Различные реализации включают декодирование. «Декодирование», как используется в настоящей заявке, может охватывать все или часть процессов, выполняемых, например, над принятым кадром облака точек (включая, возможно, принятый битовый поток, в котором закодирован один или более кадров облака точек) для того, чтобы сформировать конечный выходной сигнал, подходящий для отображения или для дальнейшей обработки в области восстановленного облака точек. В различных вариантах выполнения, такие процессы включают один или более процессов, обычно выполняемых декодером. В различных вариантах осуществления, такие процессы также, или альтернативно, включают процессы, выполняемые декодером различных реализаций, описанных в этой заявке, например.
В качестве дополнительных примеров, в одном варианте выполнения «декодирование» может относиться только к де-квантованию, в одном варианте выполнения «декодирование» может относиться к энтропийному декодированию, в другом варианте выполнения «декодирование» может относиться только к дифференциальному декодированию, и в другом варианте выполнения «декодирование» может относиться к комбинации де-квантования, энтропийного декодирования и дифференциального декодирования. То, предполагается ли, что фраза «процесс декодирования» относится конкретно к поднабору операций или, в общем, к более широкому процессу декодирования, будет ясно на основе контекста конкретных описаний и считается хорошо понятным специалистам в данной области техники.
Различные реализации включают кодирование. Аналогичным образом, как описано выше для «декодирования», «кодирование», как используется в этой заявке, может охватывать все или часть процессов, выполняемых, например, над входным кадром облака точек для того, чтобы сформировать кодированный битовый поток. В различных вариантах выполнения, такие процессы включают один или более процессов, обычно выполняемых кодером. В различных вариантах осуществления, такие процессы также, или альтернативно, включают процессы, выполняемые кодером различных реализаций, описанных в этой заявке.
В качестве дополнительных примеров, в одном варианте выполнения «кодирование» может относиться только к квантованию, в одном варианте выполнения «кодирование» может относиться только к энтропийному кодированию, в другом варианте выполнения «кодирование» может относиться только к дифференциальному кодированию, и в другом варианте выполнения «кодирование» может относиться к комбинации квантования, энтропийного кодирования и дифференциального кодирования. То, предполагается ли, что фраза «процесс кодирования» относится конкретно к поднабору операций или, в общем, к более широкому процессу кодирования, будет ясно на основе контекста конкретных описаний и считается хорошо понятным специалистам в данной области техники.
Кроме того, эта заявка может ссылаться на «определение» различных частей информации. Определение информации может включать одно или более из, например, оценки информации, вычисления информации, прогнозирования информации или извлечения информации из памяти.
Дополнительно, эта заявка ссылается на «осуществление доступа» к различным частям информации. Осуществление доступа к информации может включать одно или более из, например, приема информации, извлечения информации (например, из памяти), сохранения информации, перемещения информации, копирования информации, вычисления информации, определения информации, прогнозирования информации или оценки информации.
Кроме того, эта заявка может ссылаться на «прием» различных частей информации. Прием, как и в случае «осуществления доступа», предполагается в качестве широкого термина. Прием информации может включать одно или более из, например, осуществления доступа к информации или извлечения информации (например, из памяти). Дополнительно, «прием» обычно осуществляется, тем или иным образом, при выполнении операций, таких как, например, хранение информации, обработка информации, передача информации, перемещение информации, копирование информации, стирание информации, вычисление информации, определение информации, прогнозирование информации или оценка информации.
Также, как используется здесь слово «сигнал» относится, среди прочего, к указанию чего-либо соответствующему декодеру. Например, в некоторых вариантах выполнения кодер сигнализирует особую информацию, такую как количество точек облака точек, кодовый бит (bd), указывающий, к какому из двух полуинтервалов относится координата точки, направление азимутального кодирования, координаты точки, множество n элементарного азимутального сдвига, элементарный азимутальный сдвиг, параметр . Таким образом, в одном из вариантов выполнения один и тот же параметр может быть использован как на стороне кодера, так и на стороне декодера. Таким образом, например, кодер может передавать (явная сигнализация) особый параметр декодеру, чтобы декодер мог использовать тот же особый параметр. И наоборот, если декодер уже имеет особый параметр, а также другие, то сигнализация может быть использована без передачи (неявная сигнализация), чтобы просто позволить декодеру узнать и выбрать особый параметр. Избегая передачи каких-либо фактических функций, в различных вариантах выполнения реализуется экономия битов. Следует понимать, что сигнализация может быть выполнена множеством способов. Например, один или более синтаксических элементов, флагов и т.д. используются, чтобы сигнализировать информацию на соответствующий декодер в различных вариантах выполнения. Хотя вышеизложенное относится к глагольной форме слова «сигнал», слово «сигнал» может также использоваться в настоящем документе как существительное.
Был описан ряд реализаций. Тем не менее, следует понимать, что могут быть выполнены различные модификации. Например, элементы различных реализаций могут быть объединены, дополнены, изменены или удалены для получения других реализаций. Кроме того, специалисту в этой области техники будет понятно, что другие структуры и процессы могут быть заменены раскрытыми, и полученные в результате реализации будут выполнять по меньшей мере по существу ту же функцию (функции), по меньшей мере по существу тем же способом (способами), для достижения по меньшей мере по существу того же результата (результатов), что и раскрытые реализации. Соответственно, эти и другие реализации предусмотрены этой заявкой.
Группа изобретений относится к области кодирования/декодирования облака точек в/из битового потока кодированных данных облака точек, представляющих физический объект. Технический результат заключается в повышении эффективности сжатия по сравнению с обычным режимом азимутального кодирования при сохранении приемлемой сложности. Такой результат достигается за счет того, что в режиме азимутального кодирования используют угловую интерполяцию для определения левого и правого углов, и , на основе смещений и унаследованных углов, ассоциированных с родительским интервалом, используемым для кодирования предыдущего бита. Настоящее изобретение позволяет избежать систематического выполнения функции арктангенса для угла и функции арктангенса для угла на каждой итерации режима азимутального кодирования. 4 н. и 8 з.п. ф-лы, 14 ил.
1. Способ кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект, при этом способ содержит режим азимутального кодирования, обеспечивающий серию битов для кодирования координаты точки облака точек, причем способ включает этапы, на которых:
- разделяют (202) родительский интервал, которому принадлежит координата точки, на левый полуинтервал и правый полуинтервал;
- интерполируют (203) левый угол (), ассоциированный с левым полуинтервалом, и правый угол (), ассоциированный с правым полуинтервалом, из по меньшей мере одного унаследованного угла, ассоциированного с родительским интервалом;
- выбирают (106) контекст в зависимости от левого угла () и правого угла (); и
- кодируют с помощью контекстно-адаптивного двоичного энтропийного кодирования (107) бит (bd) в битовый поток на основе выбранного контекста, при этом кодированный бит (bd) указывает, к какому из двух полуинтервалов принадлежит координата точки.
2. Способ декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, при этом способ содержит режим азимутального кодирования, обеспечивающий серию битов для декодирования координаты точки облака точек, причем способ включает этапы, на которых:
- разделяют (202) родительский интервал, которому принадлежит координата точки, на левый полуинтервал и правый полуинтервал;
- интерполируют (203) левый угол (), ассоциированный с левым полуинтервалом, и правый угол (), ассоциированный с правым полуинтервалом, из по меньшей мере одного унаследованного угла, ассоциированного с родительским интервалом;
- выбирают (106) контекст в зависимости от левого угла () и правого угла (); и
- декодируют с помощью контекстно-адаптивного двоичного энтропийного декодирования (302) бит (bd) из битового потока на основе выбранного контекста, при этом декодированный бит (bd) указывает, к какому из двух полуинтервалов принадлежит координата точки.
3. Способ по п. 1 или 2, в котором левый угол () интерполируют путем сложения первого угла ( со взвешенной разностью второго угла ( и третьего угла (, а правый угол () интерполируют путем сложения четвертого угла ( со взвешенной разностью пятого угла ( и шестого угла (.
4. Способ по п. 3, в котором первый, второй, третий, четвертый, пятый и шестой углы являются унаследованными углами, ассоциированными с родительским интервалом.
5. Способ по п. 4, в котором первый, третий и шестой углы равны одному унаследованному углу (), ассоциированному с родительским интервалом, а второй, четвертый и пятый углы равны другому унаследованному углу (), ассоциированному с одной средней точкой родительского интервала, а угол (, ассоциированный с одной средней точкой или левого, или правого полуинтервала, вычисляют путем выполнения функции арктангенса.
6. Способ по п. 4, в котором первый, третий и пятый углы равны одному унаследованному углу (), а второй, четвертый и шестой углы равны другому унаследованному углу (), равному верхней границе родительского интервала, и или угол (, ассоциированный с одной верхней границей левого полуинтервала, или угол (, ассоциированный с одной нижней границей правого полуинтервала, вычисляют путем выполнения функции арктангенса.
7. Способ по п. 6, в котором угол (, ассоциированный с верхней границей левого полуинтервала, или угол (, ассоциированный с нижней границей правого полуинтервала, равен унаследованному углу (), ассоциированному с одной средней точкой родительского интервала.
8. Способ по п. 6, в котором угол (, ассоциированный с верхней границей левого полуинтервала, или угол (, ассоциированный с нижней границей правого полуинтервала, для кодирования первого бита вычисляют с помощью арктангенса, а угол (, ассоциированный с верхней границей левого полуинтервала, или угол (, ассоциированный с нижней границей правого полуинтервала, для кодирования последующих битов равен унаследованному углу (), ассоциированному с одной средней точкой родительского интервала.
9. Способ по п. 7 или 8, в котором унаследованный угол (), ассоциированный со средней точкой родительского интервала, является интерполяцией от двух унаследованных углов, ( и (, ассоциированных с родительским интервалом.
10. Способ по п. 7 или 8, в котором унаследованный угол (), ассоциированный со средней точкой родительского интервала, вычисляют путем выполнения функции арктангенса, при этом один размер родительского интервала больше или равен определенному порогу, или иным образом интерполируют из двух унаследованных углов (( и ( ассоциированных с родительским интервалом.
11. Устройство кодирования облака точек в битовый поток кодированных данных облака точек, представляющих физический объект, при этом устройство содержит один или более процессоров, выполненных с возможностью реализации режима азимутального кодирования, обеспечивающего серию битов для кодирования координаты точки облака точек, при этом режим азимутального кодирования включает:
- разделение родительского интервала, которому принадлежит координата точки, на левый полуинтервал и правый полуинтервал;
- интерполяцию левого угла (), ассоциированного с левым полуинтервалом, и правого угла (), ассоциированного с правым полуинтервалом, из по меньшей мере одного унаследованного угла, ассоциированного с родительским интервалом;
- выбор контекста в зависимости от левого угла () и правого угла (); и
- кодирование с помощью контекстно-адаптивного двоичного энтропийного кодирования (107) бита (bd) в битовый поток на основе выбранного контекста, при этом кодированный бит (bd) указывает, к какому из двух полуинтервалов принадлежит координата точки.
12. Устройство декодирования облака точек из битового потока кодированных данных облака точек, представляющих физический объект, при этом устройство содержит один или более процессоров, выполненных с возможностью реализации режима азимутального кодирования, обеспечивающего серию битов для кодирования координаты точки облака точек, при этом режим азимутального кодирования включает:
- разделение родительского интервала, которому принадлежит координата точки, на левый полуинтервал и правый полуинтервал;
- интерполяцию левого угла (), ассоциированного с левым полуинтервалом, и правого угла (), ассоциированного с правым полуинтервалом, из по меньшей мере одного унаследованного угла, ассоциированного с родительским интервалом;
- выбор контекста в зависимости от левого угла () и правого угла (); и
- декодирование с помощью контекстно-адаптивного двоичного энтропийного декодирования бита (bd) из битового потока на основе выбранного контекста, при этом декодированный бит (bd) указывает, к какому из двух полуинтервалов принадлежит координата точки.
CN 112438049 A, 02.03.2021 | |||
CN 111699683 A, 22.09.2020 | |||
EP 3800886 A1, 07.04.2021 | |||
ЕР 3800892 А1, 07.04.2021 | |||
US 20200396489 A1, 17.12.2020 | |||
СПОСОБ ГЕНЕРИРОВАНИЯ СТРУКТУРЫ УЗЛОВ, ПРЕДНАЗНАЧЕННЫХ ДЛЯ ПРЕДСТАВЛЕНИЯ ТРЕХМЕРНЫХ ОБЪЕКТОВ С ИСПОЛЬЗОВАНИЕМ ИЗОБРАЖЕНИЙ С ГЛУБИНОЙ | 2002 |
|
RU2237284C2 |
Авторы
Даты
2024-05-06—Публикация
2021-10-13—Подача